Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to know if SSE2 is activated in opencv

I have a version of OpenCV 2.4.10 Library which was built for Intel X64 on Windows.

How can I know if the CV_SSE2 is active? I do not have the code. I just have the libs ,DLLs and headers.

Thanks

like image 954
Humam Helfawi Avatar asked Dec 02 '22 14:12

Humam Helfawi


2 Answers

You can check if SSE2 is enabled with the function checkHardwareSupport like:

#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    cv::setUseOptimized(true); // Turn on optimization (if it was disabled)

    // Get other build information
    //std::cout << cv::getBuildInformation(); 

    // Check SSE2 support
    std::cout << cv::checkHardwareSupport(CV_CPU_SSE2);

    return 0;
}
like image 54
Miki Avatar answered Dec 06 '22 19:12

Miki


From the output of cv::getBuildInformation(), look for the line that says e.g. C++ flags (Release), if -msse2 is there in the list, that means software code of your version of OpenCV library is compiled with SSE2 build option enabled.
According to OpenCV's documentation, checkHardwareSupport() reports whether the feature is supported by the host hardware, which may not be the same as the compile option used to build the software, especially if your library is compiled by someone else on a different machine.

like image 21
Fan Zeng Avatar answered Dec 06 '22 20:12

Fan Zeng