Compiling opencv 2.4.5 with TBB - opencv

I have TBB installed to /usr/local/tbb and now trying to compile opencv 2.4.5 with the installed version.
But if i use ccmake, it will download another copy of TBB from the internet. I dont want this.
What are the commandline options for cmake to accept my local installed TBB directories?
Thanks!

cmake -DWITH_TBB=ON
-DTBB_INCLUDE_DIR=/usr/local/tbb/include
-DTBB_LIB_DIR=/usr/local/tbb/lib

Related

What is the proper way of adding a local dependency (openCV) in Meson?

I am using OpenCV in one of my projects. Until now, I was using version 3 under Ubuntu 18.04, so in my meson.build I had:
... dependencies: [dependency('opencv')])
Now, I've compiled OpenCV 4 from source and installed to the default dir, /usr/local/, and changed my meson.build to:
... dependencies: [dependency('opencv4')])
Resulting in a not found error (despite this works with Ubuntu 20.04 and the package from the official repos, which is version 4.2). How should I specify the library's location so Meson can find it?
I've seen find_library, but that's deprecated according the docs.
The dependency function is using pkg-config or cmake if pkg-config fails, to find external dependency (installed library).
When you install OpenCV4, please check if there is pkg-config for opencv4. Here is my command:
pkg-config --list-all | grep "opencv4"
and output:
opencv4 OpenCV - Open Source Computer Vision Library
Also, check PKG_CONFIG_PATH environment variable. pkg-config will use that path to search for .pc files.
Edit:
be sure to use -D OPENCV_GENERATE_PKGCONFIG=YES when building opencv with cmake.

Compiling Darknet with opencv-python

I installed Darknet with CUDA support. I ran
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg
I want it to run with opencv support. I had already installed opencv.
I compiled darknet with remake/make after making OPENCV=1 in Makefile, but still it is not detecting the installed opencv.
How can I make it to detect the already installed opencv?
I have installed opencv with this command pip install opencv-python --user before installing darknet.
You need to install the c++ libraries not just the python wrapper. You can do it from the sources: https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html.
In order to compile Darknet you will need OpenCV works with C/C++ code, not python. To check whether you have installed OpenCV correctly and can be used in C program, run this command :
pkg-config --modversion opencv
If it doesn't show anything or shows wrong version, try to reinstall OpenCV OR it is possible that your machine doesn't locate opencv version correctly.
So add command to your ~/.bashrc for example :
vim ~/.bashrc
export PKG_CONFIG_PATH=/home/user/installation/OpenCV-3.4.0/lib/pkgconfig
source ~/.bashrc
Notes : Change the path according to your opencv installation directory that contains opencv.pc
If you're following this repo https://github.com/AlexeyAB/darknet for Windows/Linux you need to download openCV (both OpenCV 2.x.x and OpenCV <= 3.4.0 (3.4.1 and higher isn't supported)) and put in this path for
Windows: ( C:\opencv_3.0\opencv\build\include & C:\opencv_3.0\opencv\build\x64\vc14\lib)
More instructions in the repo. If you're on Windows/Linux and still trying to figure things out you may check a video I made on that topic https://youtu.be/-HtiYHpqnBs

How to build openCV 3.3.0 with GStreamer on Windows

Having Gstreamer 1.22 successfully installed I'm not able to configure the project to build OpenCV. CMake isn't able to find GStreamer on my machine. Any ideas how two address this issue?
Just found the solution:
Cmake is using FindGstreamerWindows.cmake to find GStreamer on Windows, which is using internal an environment variable called "GSTREAMER_DIR" pointing to ..\gstreamer\1.0\x86_64.
Please make sure GSTREAMER_DIR exists on your machine.
I recently compile Opencv 4.2 with GStreamer on Windows. I use settings for GStreamer as on the following pictures. Make sure you point to correct .lib and include directories. all_Library is gstapp-1.0.lib etc, when configuraing CMAKE to compile OpenCV.
I use Opencv 4.2, CMake 3.17.0 release candidate and Gstreamer 1.16.2 MSVC 64-bit (VS 2019) developer and runtime installer. The whole process is described here install OpenCV on windows GStreamer tutorial
The important part is to set up environmental variables to find Gstreamer Runtime. Into system variable path: add
xxx\1.0\x86_64\bin
xxx\1.0\x86_64\lib
xxx\1.0\x86_64\lib\gstreamer-1.0
Gstreamer pipe from c++ opencv program to the web.

Compiling OpenCV-contrib for IOS (especially the SFM-Module)

I've tried to install openCV_contrib for IOS, therefore I execute
python opencv/platforms/ios/build_framework.py "framework_dest"
on my Mac (I need Xcode for compiling openCV for IOS) but all the times, i got the message:
-- Checking SFM deps... FALSE
-- Module opencv_sfm disabled because the following dependencies are not found: Glog/Gflags
I need the SFM module, hence I tried installing Glog and Gflags at several ways: using
brew install glog gflags
and brew outputs, that those packages are successfully installed respective already installed.
Later I tried to compile both from GitHub on my own, but with no success, I'm still not able to compile SFM for IOS.
On Linux I could compile openCV including the SFM module, but I can't compile it for IOS, because Xcode is not available for Linux.
I don't know, what to do! Do some of you know how to install glog/gflags on Mac or do you know how to build the IOS-Framework of OpenCV on Linux or maybe how to build the IOS-Framework on my Mac using the binaries created with cmake .. && make in my Linux (because there SFM is compiled)?
There have to be some solution, because Mac is based on Linux, so if it works on Linux, why doesn't it work on my Mac?!
Thanks!

Building OpenCV 2.4.5 with TBB - missing tbb_debug.lib

I'm trying to compile OpenCV 2.4.5 with MSVC2010 Express under win64
LINK : fatal error LNK1104: cannot open file 'tbb_debug.lib'
All my paths are set correctly in cmake. It appears that in my TBB lib dir, I have tbb_debug.dll, but not tbb_debug.lib. I compiled tbb from source, however, there does not seem to be a tbb.lib in the prebuilt TBB packages either. Why is OpenCV asking for a .lib?
copy the release lib to the debug folder - it's missing.
I thought it was fixed on 2.4.5 but it no longer uses tbb on Windows so no experience
I've struggled building OpenCV with TBB for the past couple of days. I managed to compile it in the end; please find my CMake settings and other findings in this answer.

Resources