#include "highgui.h"
#include <cv.h>
#include <cvaux.h>
int main(int argc, char* argv[])
{
const char* imagename = "lena.jpg";
IplImage * img = cvLoadImage(imagename);
if(!img)
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
if( !img->imageData ) // 检查是否正确载入图像
return -1;
cvNamedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口
cvShowImage("image", img); //显示图像
IplImage* img1 = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);//创建目标图像
cvCvtColor(img,img1,CV_BGR2GRAY);//cvCvtColor(src,des,CV_BGR2GRAY)
cvNamedWindow("gray_image",CV_WINDOW_AUTOSIZE);//创建显示目标的窗口
cvShowImage("gray_image",img1);//显示灰度图像
cvWaitKey();
cvReleaseImage(&img);
cvReleaseImage(&img1);
cvDestroyAllWindows();
return 0;
}运行结果:

本文介绍了一个使用OpenCV库将彩色图像转换为灰度图像的C++程序实例。通过加载图像、创建显示窗口、进行颜色空间转换并展示灰度图像等步骤,详细展示了整个过程。适用于希望了解OpenCV基本功能及图像处理技术的读者。
1332

被折叠的 条评论
为什么被折叠?



