cpu version result
gpu version result
...
cpu version code.
#include < time.h> #include < opencv2\opencv.hpp> #include < opencv2\gpu\gpu.hpp> #include < string> #include < stdio.h> #ifdef _DEBUG #pragma comment(lib, "opencv_core249d.lib") #pragma comment(lib, "opencv_imgproc249d.lib") //MAT processing //#pragma comment(lib, "opencv_gpu249d.lib") #pragma comment(lib, "opencv_highgui249d.lib") #else #pragma comment(lib, "opencv_core249.lib") #pragma comment(lib, "opencv_imgproc249.lib") //#pragma comment(lib, "opencv_gpu249.lib") #pragma comment(lib, "opencv_highgui249.lib") #endif #define RWIDTH 800 #define RHEIGHT 600 using namespace std; using namespace cv; void ProccTimePrint( unsigned long Atime , string msg); int main() { //video input VideoCapture cap("C:\\videoSample\\tracking\\rouen_video.avi"); //variable Mat o_frame; Mat showMat_r; Mat showMat_r2; //first frame cap >> o_frame; if( o_frame.empty() ) return 0; unsigned long AAtime=0; namedWindow("origin",0); namedWindow("canny",0); while(1) { ///////////////////////////////////////////////////////////////////////// AAtime = getTickCount(); //frame cap >> o_frame; if( o_frame.empty() ) return 0; resize(o_frame, showMat_r, Size(RWIDTH, RHEIGHT) ); Canny(showMat_r, showMat_r2, 50, 100); imshow("origin", showMat_r); imshow("canny", showMat_r2); //processing time ProccTimePrint(AAtime , "Total"); if( waitKey(5) > 0) break; } return 0; } void ProccTimePrint( unsigned long Atime , string msg) { unsigned long Btime=0; float sec, fps; Btime = getTickCount(); sec = (Btime - Atime)/getTickFrequency(); fps = 1/sec; printf("%s %.4lf(sec) / %.4lf(fps) \n", msg.c_str(), sec, fps ); }///
gpu version code
#include < time.h> #include < opencv2\opencv.hpp> #include < opencv2\gpu\gpu.hpp> #include < string> #include < stdio.h> #ifdef _DEBUG #pragma comment(lib, "opencv_core249d.lib") #pragma comment(lib, "opencv_imgproc249d.lib") //MAT processing #pragma comment(lib, "opencv_gpu249d.lib") #pragma comment(lib, "opencv_highgui249d.lib") #else #pragma comment(lib, "opencv_core249.lib") #pragma comment(lib, "opencv_imgproc249.lib") #pragma comment(lib, "opencv_gpu249.lib") #pragma comment(lib, "opencv_highgui249.lib") #endif #define RWIDTH 800 #define RHEIGHT 600 using namespace std; using namespace cv; void ProccTimePrint( unsigned long Atime , string msg); int main() { //input VideoCapture cap("C:\\videoSample\\tracking\\rouen_video.avi"); //variable Mat o_frame; Mat showMat_r; Mat showMat_r2; gpu::GpuMat o_frame_gpu; gpu::GpuMat r_frame_gpu; gpu::GpuMat rg_frame_gpu; gpu::GpuMat r_frame_gpu2; //first frame cap >> o_frame; if( o_frame.empty() ) return 0; unsigned long AAtime=0; while(1) { ///////////////////////////////////////////////////////////////////////// AAtime = getTickCount(); //frame cap >> o_frame; if( o_frame.empty() ) return 0; //upload to gpumat o_frame_gpu.upload(o_frame); gpu::resize(o_frame_gpu, r_frame_gpu, Size(RWIDTH, RHEIGHT) ); gpu::cvtColor(r_frame_gpu, rg_frame_gpu, CV_BGR2GRAY); gpu::Canny(rg_frame_gpu, r_frame_gpu2, 50, 100); //gray only //download to mat r_frame_gpu.download(showMat_r); r_frame_gpu2.download(showMat_r2); //show image imshow("origin", showMat_r); imshow("canny", showMat_r2); //processing time ProccTimePrint(AAtime , "Total"); if( waitKey(10) > 0) break; } return 0; } void ProccTimePrint( unsigned long Atime , string msg) { unsigned long Btime=0; float sec, fps; Btime = getTickCount(); sec = (Btime - Atime)/getTickFrequency(); fps = 1/sec; printf("%s %.4lf(sec) / %.4lf(fps) \n", msg.c_str(), sec, fps ); }