如何知道opencv中是不是激活了SSE2
Posted
技术标签:
【中文标题】如何知道opencv中是不是激活了SSE2【英文标题】:How to know if SSE2 is activated in opencv如何知道opencv中是否激活了SSE2 【发布时间】:2015-09-09 10:44:02 【问题描述】:我有一个为 Windows 上的 Intel X64 构建的 OpenCV 2.4.10 库版本。
我如何知道 CV_SSE2 是否处于活动状态?我没有代码。我只有库、DLL 和头文件。
谢谢
【问题讨论】:
std::cout 谢谢,我得到了类似 Use IPP: NO Use Eigen: NO Use TBB: NO Use OpenMP: NO Use GCD NO Use Concurrency YES Use C=: NO Use Cuda: NO Use OpenCL: YES 然而与 SSE 无关……这是否意味着它是在没有 SSE 的情况下构建的??? std::cout 【参考方案1】:您可以使用checkHardwareSupport函数检查是否启用了SSE2,例如:
#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】:从cv::getBuildInformation()
的输出中,查找表示例如的行C++ flags (Release)
,如果-msse2
在列表中,这意味着您的 OpenCV 库版本的软件代码是在启用 SSE2 构建选项的情况下编译的。
根据 OpenCV 的文档,checkHardwareSupport()
报告了主机硬件是否支持该功能,这可能与用于构建软件的编译选项不同,特别是如果您的库是由其他人在不同的机器上编译的。
【讨论】:
以上是关于如何知道opencv中是不是激活了SSE2的主要内容,如果未能解决你的问题,请参考以下文章