#include < stdio.h >
#include < opencv2\opencv.hpp >
#include < opencv2\gpu\gpu.hpp >
#ifdef _DEBUG
#pragma comment(lib, "opencv_core246d.lib")
#pragma comment(lib, "opencv_imgproc246d.lib") //MAT processing
//#pragma comment(lib, "opencv_objdetect246d.lib")
#pragma comment(lib, "opencv_gpu246d.lib")
//#pragma comment(lib, "opencv_features2d246d.lib")
#pragma comment(lib, "opencv_highgui246d.lib")
//#pragma comment(lib, "opencv_ml246d.lib")
#else
#pragma comment(lib, "opencv_core246.lib")
#pragma comment(lib, "opencv_imgproc246.lib")
//#pragma comment(lib, "opencv_objdetect246.lib")
#pragma comment(lib, "opencv_gpu246.lib")
//#pragma comment(lib, "opencv_features2d246.lib")
#pragma comment(lib, "opencv_highgui246.lib")
//#pragma comment(lib, "opencv_ml246.lib")
#endif
using namespace cv;
void main()
{
unsigned long AAtime=0, BBtime=0;
Mat img;
Mat outimg, outimg2;
img = imread("Tulips.jpg",0);
gpu::GpuMat d_src, d_dst;
d_src.upload(img);
AAtime = getTickCount();
gpu::Canny(d_src, d_dst, 35, 200, 3);
BBtime = getTickCount();
printf("cuda %.5lf \n", (BBtime - AAtime)/getTickFrequency() );
d_dst.download(outimg);
AAtime = getTickCount();
Canny(img, outimg2, 35, 200, 3);
BBtime = getTickCount();
printf("cpu %.5lf \n", (BBtime - AAtime)/getTickFrequency() );
namedWindow("t");
imshow("t",outimg2);
namedWindow("t2");
imshow("t2",outimg);
cvWaitKey(0);
}
////
cuda processing takes 0.00578 sec.
and non-cuda processing takes 0.01707 sec.
In this case, cuda is faster 2times than non-cuda, but cuda will be seen higher speed.
No comments:
Post a Comment