OpenCV Xojo 64-bit

Hello,
Have a look here GitHub - ldci/OpenCV-Xojo-64-bit: Experimental 64-bit version.
This a first attempt to use use OpenCV C API on 64-bit architectures.

2 Likes

Hey great work doing this - I have a project that needs OpenCV and given Xojo is my preferred development tool this sounds great. Will have a play in the next few days and let you know how I get on. Thanks.

Suggestions:

  • Save the project as an XML version, makes it possible to do diffs.
  • or Export the modules as XML, and skip the project altogether.
  • Possibly save in an older version (2019 3.1 for example), unless your using modern calls/API2, haven’t checked.

Notes:
Requires - “BUILD_opencv_world” Selected in cmake to generate the “world” dlls

Am testing a python project conversion to Xojo that reads QR codes from video feeds. Am currently unsure if all the modules I use are supported in this project and OpenCV < 4.

Using:
CMake 3.23.1
OpenCV – 3.4.16 https://github.com/opencv/opencv/archive/3.4.16.zip
Visual Studio Community 2022 (17.1.6) with “Desktop Development with C++” and “Windows 10 SDK (10.0.19041.0)” Selected with defaults

Have so far managed to Cmake Configure and Generate, Build the solution, run native test exes.
Next is actual xojo integration testing :slight_smile:

Edit: I need zbar as well, so I am investigating it’s declares.
Edit: Monkeybread Xojo plugin - ZBarMBS class Before Christian chimes in.

Hi Daniel,

Thanks for your suggestions:)

I’ll test later

I prefer not using world.dll and have a modular approach which allows to select only required modules (e.g. core, highgui …)

Regards

New examples added GitHub - ldci/OpenCV-Xojo-64-bit: Experimental 64-bit version

When I was looking at the code, it looks like its only using the world dll, so I added it to the build options:

OK Daniel
If you use world.dll, you can add to xTools a constant to this lib and suppress in each module the constant for core, improc…

Thankyou

But beware
You have to change for each external method the name of the lib :slight_smile:

Better way
just change for each module the link to the lib
usr/local/lib/opencv3/libopencv_core.3.4.16.dylib
→ usr/local/lib/opencv3/libopencv_world.3.4.16.dylib