C风格的操作:
const char *pstrImageName = "秽土转生第七版.jpg"; const char *pstrWindowsTitle = "窗口标题"; //从文件中读取图像 IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED); //创建窗口 cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE); //在指定窗口中显示图像 cvShowImage(pstrWindowsTitle, pImage); //等待按键事件 cvWaitKey(); cvDestroyWindow(pstrWindowsTitle); cvReleaseImage(&pImage);C++风格的操作:
Mat img = imread(pstrImageName); imshow(pstrWindowsTitle, img); //等待按键事件 cvWaitKey();
可以看出使用C++风格的操作优势明显,只需要两步操作即可显示图像,并且不用手动释放资源,开发过程中再也不用担心资源泄漏了。
Mat src_mat = imread(pstrImageName); Mat gray_mat; cvtColor(src_mat, gray_mat, CV_BGR2GRAY); imshow("原始图", src_mat); imshow("灰度图", gray_mat); waitKey(0);
注意:在OpenCV中,函数名与结构体名的前面以cv和Cv为前缀的都是C风格代码。
源彩色图像与灰度图像分别为:
有两种复制方式,分别为clone(), copyTo();代码如下:
Mat cpy_gray = gray_mat.clone(); Mat cpy_gray2; gray_mat.copyTo(cpy_gray2); imshow("clone()复制图像", cpy_gray); imshow("copyTo()复制图像", cpy_gray2);
原文:http://blog.csdn.net/lming_08/article/details/26624941