Is it possible to obtain the source code for the opencv4tegra_220.127.116.11 library? Is it a modified version of opencv-2.4.8 or just pre-built with specific build flags? If it is a modified version, are all the API’s in opencv 2.4.8 implemented in this version?
Thank you for the info shervin. I checked the link you posted. It was quite informative. I have successfully installed the libraries on my Jetson TK1 board using this guide http://elinux.org/Tegra/Installing_OpenCV. But i’m facing some issues when I build the sample program for stitching (stitching_detailed.cpp). But I can successfully build and run it against opencv-2.4.9. This is the result that I get when building stitching_detailed.cpp against libopencv4tegra.
stitching_detailed.cpp:(.text+0x188c): undefined reference to `cv::detail::SurfFeaturesFinderGpu::SurfFeaturesFinderGpu(double, int, int, int, int)’
I tried linking against all the opencv4tegra libraries. Has SurfFeaturesFinderGpu been removed in opencv4tegra? Is there any other GPU accelerated API available for finding features in opencv4tegra?
Does this version of opencv support multicore execution using TBB or openMP? because when I run any sample program compiled against the opencv4tegra libraries, I dont see more than two cores getting activated. And what does libopencv_tegra.so contain or do? Is there any documentation available for opencv4tegra? Like what has been implemented and which feateures will be absent?
I was able to compile opencv-2.4.9 with cuda enabled and TBB (for multicore support). I also compiled the sample codes stitching.cpp and stitching_detailed.cpp against my custom built opencv libraries.
The performance difference is highly noticeable. opencv4tegra is much faster compared to a custom build of opencv
It will ‘Replace’ the libraries for ROS… as I’ve already extracted the deb file and read the control files that were put into the package. But I have an uneasy feeling about the above… even though their libraries are at 2.4.8 - I would still be linking against a different library - nothing bad could ever go wrong there… ;)
Analyze the public OpenCV source code then copy/paste the parts of the nonfree module that you want (eg: SURF feature detector) from OpenCV into your own project. You will have the CPU optimizations of OpenCV4Tegra for most of your code and will have the GPU module and will have the non-optimized patented code that you need from the nonfree package such as SURF. So this option gives full performance (for everything except the nonfree code) but is tedious.
So far I have tried copy parts of the features2d.hpp into my code, but that is not working for me. I would like to use CPU optimization/non-optimized gpu SURF.