opencv彩色图像转灰度图像

#include "highgui.h"
#include "cv.h"
#include <cvaux.h>

int main(int argc, char *argv[])

{

	const char * filename = "E:\\111.jpg";

	// Matlab风格的cvLoadImage 函数的另一种调用

	IplImage *img = cvLoadImage(filename,1);

	if(!img)//载入失败
	{
		fprintf(stderr,"Can not load image %s \n",filename);
		return -1;
	}
	if(!img->imageData)//载入的图像数据是否正确
	{
		return -1;
	}
	cvNamedWindow("image",CV_WINDOW_AUTOSIZE );//创建窗口,窗口名字为image
	cvShowImage("image",img);//在刚创建的image窗口中载入图像

	//创建一个与img相同大小的图像img1
	IplImage *img1 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
	//色彩空间转换,将源彩色图像img转化成目标灰色图像imag1
	cvCvtColor(img,img1,CV_BGR2GRAY); //关键
	cvNamedWindow("GrayImage",CV_WINDOW_AUTOSIZE);//创建窗口,窗口名字GrayImage
	cvShowImage("GrayImage",img1);//载入转化后的图像
	cvSaveImage("E:\\111_gray.jpg",img1,0);
	cvWaitKey(0);
	cvReleaseImage(&img);
	cvReleaseImage(&img1);
	cvDestroyAllWindows( );
	return 0;
}

 

posted @ 2012-01-13 10:36  hailong  阅读(921)  评论(0编辑  收藏  举报