图像的输入输出
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);
以上代码也是采用C++风格操作的,C风格的图像转换函数为void
cvCvtColor(const CvArr* src, CvArr*
dst, int code)
注意:在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);
【未完待续】
OpenCV之图像基本操作
时间: 2024-10-11 04:58:19