好久没有写博客啊,因为自己是一个菜鸟啊,今天实在是想写一遍感慨一下人生,当做人生的一次回忆。
之前用行人识别,发现实在很卡啊,后来在网上发现GPU可以加速,无奈按照网上的教程试了一遍,一试就发现是一个星期,内心各种放弃,各种想切腹自尽。
今天终于可以编译成功啊,内心各种草泥马。所以做了一下总结。
准备工作:1、先检查你的电脑是否支持gpu的加速,可以在官网查到的,是要英伟达的。
2、https://developer.nvidia.com/cuda-downloads到这个网站下载cuda
(1、下载这个要留个心,并不是最新的版本是合适的,看个人吧)
(我在编译cuda的时候,有很多的错误LINK : fatal error LNK1104: 无法打开文件“..\..\lib\debug\opencv,我检查好久。就是不知道是哪里错 误,无奈重装系统,发现问题好了很多,不过还是有很多这样的错误,我又把我之前的vs2010改为vs2012,结果是行了,不知道 我的opencv是不是2.4.11相对来说不支持vs2010,这个我也不太懂,希望有大神指导一下吧)
3.在编译的时候,我发现我用不到tbb,我也不明白是什么原因,总之好奇怪。
4.我在编译opencv重新生成是也没有加入tbb。opencv库,这个我也不明白。
5、 下载 python
编译时:在编译的时候,会生成一个lib文件,lib\debug里面存放的在编译时生成的一些库文件。
最后要用到的只有install在编译的时候(INSTALL生成的install的文件)
1、把install的bin路径加到系统路径和opencv c++ 可执行文件目录中
2、把install的include和其目录下的opencv、opencv2加到包含目录中
3、把install的lib文件加到库文件中
可以参考这个大牛的网站(http://blog.csdn.net/huang9012/article/details/21811129)
测试代码2
#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"
int main (int argc, char* argv[])
{
try
{
cv::Mat src_host = cv::imread("file.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cv::gpu::GpuMat dst, src;
src.upload(src_host);
cv::gpu::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);
cv::Mat result_host(dst);
cv::imshow("Result", result_host);
cv::waitKey();
}
catch(const cv::Exception& ex)
{
std::cout << "Error: " << ex.what() << std::endl;
}
return 0;
}
error lnk1104: 无法打开文件 ..\..\lib\debug\opencv
error lnk1104: 无法打开文件 ..\..\lib\debug\opencv_
error lnk1104: 无法打开文件 ..\..\lib\debug\opencv_)