OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++, так же разрабатывается для Python, Ruby, Matlab и других языков[1]. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.
#include "stdio.h" #include "windows.h" #include "cv.h" #include "highgui.h" char name0[] = "lena.jpg"; char name1[] = "fruits.jpg"; int main() { IplImage* img1 = NULL; IplImage* img2 = NULL; //cvNamedWindow("Image", 1); //load original image img1 = cvLoadImage(name0,1); img2 = cvLoadImage(name1,1); //cvUseOptimized(1); // load IPP //How to check whether IPP is used or not? const char* plugin_info = 0; DWORD sm1, sm2, sm3; int Count = 100; printf("== Test for resizing images in OpenCV with IPP ==\n"); for (int j=0; j<2; j++ ) { if (j == 1) cvUseOptimized(0); unload IPP cvGetModuleInfo(0,0,&plugin_info); bool ipp_is_used = plugin_info != 0 && strstr(plugin_info,"ipp")!=0; sm1=GetTickCount();
for (int i=0; iwidth*2.55) , (img1->height*3.77)), img1->depth, img1->nChannels); newImage2 = cvCreateImage(cvSize((img2 - >width*2.55) , (img2->height*3.77)), img2->depth, img2->nChannels); cvResize(img1, newImage1); cvResize(img2, newImage2); // cvReleaseImage(&newImage1); cvReleaseImage(&newImage2); } sm2=GetTickCount(); sm3 = sm2 - sm1; if (ipp_is_used) printf("* IPP is used\n"); else printf("* IPP is not used! \n"); printf("* Iteration resize = %d \n", Count); DWORD m, s, ms; m = sm3 / 60000; s = (sm3 - m*60000) /1000; ms = (sm3 - (m*60000)-(s*1000)); printf("* Time - %d min %d sec %d msec \n",(int)(m), (int)s, (int)ms); printf("=================================================\n"); } cvReleaseImage(&img1); cvReleaseImage(&img2); printf("Press any key ..."); getchar(); //cvShowImage("Image", newImage1); cvWaitKey(0); //cvDestroyWindow( "Image" ); return 0; }
Литература:
Bradsky G., Kaehler A. Learning OpenCV - O'Reilly, 2008. - C. 1 - ISBN 978-0-596-51613-0