How to know if SSE2 is activated in opencv

2019-02-20 07:10发布

问题:

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

回答1:

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;
}


回答2:

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.