作者:一个不需要幸福的男人丶 | 来源:互联网 | 2023-06-25 21:14
之前的文章中,给大家介绍了如何将OpenCV2.2与CUDA4.0的巧妙结合。今天尝试把CUDA和OpenCV两者进行硬性结合。建立一个project,添加一个.cu的文件。按照
之前的文章中,给大家介绍了如何将OpenCV 2.2与CUDA 4.0的巧妙结合。今天尝试把CUDA 和 OpenCV 两者进行硬性结合。
建立一个 project,添加一个.cu 的文件。
按照之前的方法进行 OpenCV 和 CUDA 的配置:
cvShowImage("Image:",img);
float M[3][3] = {
{1.0, 2.0, 3.0},
{4.0, 5.0, 6.0},
{7.0, 8.0, 9.0}
};
float N[3][3] = {
{1.0, 2.0, 3.0},
{4.0, 5.0, 6.0},
{7.0, 8.0, 9.0}
};
float P[3][3] = {0.0};
float* m = &M[0][0];
float* n = &N[0][0];
float* p = &P[0][0];
int Width = 3;
MatrixMulOnDevice(m, n, p, Width);
for (int i = 0;i {
for (int j = 0;j {
cout< }
cout<}
cvWaitKey();
return 0;
}
直接用 Debug 运行出错加一堆 warning,难道这样硬生生搬到一起就不行吗?
后来,同学用 OpenCV 1.0 和 CUDA 4.0 的组合顺利通过。
或者参考http://www.ademiller.com/blogs/tech/2011/03/using-cuda-and-thrust-with-visual-studio-2010/
再后来,用 Release 运行竟然通过了,而且结果正确,神了个奇,但是 warning 依然很多,看来不是个好方法。
但起码出结果了,我很不理解,看来我对 Debug 和 Release 的机制还不了解,以后再说。
顺便一提,这时图片路径使用绝对路径竟然就可以了。
http://cuda.it168.com/a2011/0920/1248/000001248712.shtml