Closed hafedh-trimeche closed 2 years ago
I solved the problem by introducing function naming related to CPUX64 (function's name same as located into the DLL). ocv.cls.contrib and ocv.cls.features2d are impacted ; may other units be.
{ TFeatureDetector }
{$IFDEF CPUX64}
function Create_FeatureDetector(const detectorType: pAnsiChar):TOpenCVClass;stdcall;external opencv_classes_lib delayed;
function Empty_FeatureDetector(const F: TOpenCVClass): cbool;stdcall;external opencv_classes_lib delayed;
procedure detect_FeatureDetector(const F:TOpenCVClass;image:PIplImage;var keypointcount:Integer;var keypoints:pKeyPoint;mask:PIplImage);stdcall;external opencv_classes_lib delayed;
{$ELSE}
function Create_FeatureDetector(const detectorType: pAnsiChar): TOpenCVClass; stdcall;
external opencv_classes_lib name '_Create_FeatureDetector@4' delayed;
function Empty_FeatureDetector(const F: TOpenCVClass): cbool; stdcall; external opencv_classes_lib name '_Empty_FeatureDetector@4' delayed;
procedure detect_FeatureDetector(const F: TOpenCVClass; image: PIplImage; Var keypointcount: Integer; Var keypoints: pKeyPoint;
mask: PIplImage); stdcall; external opencv_classes_lib name '_detect_FeatureDetector@20' delayed;
{$ENDIF}
{ TDescriptorExtractor }
{$IFDEF CPUX64}
function Create_DescriptorExtractor(const descriptorExtractorType:pAnsiChar):TOpenCVClass;stdcall;external opencv_classes_lib delayed;
function Empty_DescriptorExtractor(const F:TOpenCVClass):cbool;stdcall;external opencv_classes_lib delayed;
procedure compute_DescriptorExtractor(const F:TOpenCVClass;image:PIplImage;keypointcount:Integer;keypoints:pKeyPoint;var mask:TOpenCVClass);stdcall;external opencv_classes_lib delayed;
function descriptorSize_DescriptorExtractor(const F:TOpenCVClass):Integer;stdcall;external opencv_classes_lib delayed;
function descriptorType_DescriptorExtractor(const F:TOpenCVClass):Integer;stdcall;external opencv_classes_lib delayed;
{$ELSE}
function Create_DescriptorExtractor(const descriptorExtractorType:pAnsiChar):TOpenCVClass;stdcall;external opencv_classes_lib name '_Create_DescriptorExtractor@4' delayed;
function Empty_DescriptorExtractor(const F: TOpenCVClass): cbool; stdcall; external opencv_classes_lib name '_Empty_DescriptorExtractor@4' delayed;
procedure compute_DescriptorExtractor(const F: TOpenCVClass; image: PIplImage; keypointcount: Integer; keypoints: pKeyPoint;
Var mask: TOpenCVClass); stdcall; external opencv_classes_lib name '_compute_DescriptorExtractor@20' delayed;
function descriptorSize_DescriptorExtractor(const F: TOpenCVClass): Integer; stdcall;
external opencv_classes_lib name '_descriptorSize_DescriptorExtractor@4' delayed;
function descriptorType_DescriptorExtractor(const F: TOpenCVClass): Integer; stdcall;
external opencv_classes_lib name '_descriptorType_DescriptorExtractor@4' delayed;
{$ENDIF}
Best regards.
Hi,
Please note that FeatureDetector compiled with 64 bit as target, caused an exception. The 32 bit version worked well.
Best regards.