【OpenCV】将RGB图像转为灰度图

基本思路:

1、  输入RGB(彩色)图像

2、  处理图像

3、  输出GRAY(灰度)图像

这里将处理图像过程单独写成一个函数,供主函数调用

 1 void RGB2GRAY(IplImage* src)
2
3 {
4
5 //创建2个窗体,分别显示源图像和处理后的灰度图
6
7 cvNamedWindow("RGB");
8
9 cvNamedWindow("GRAY");
10
11
12 //显示源图像
13
14 cvShowImage("RGB",src);
15
16
17 //创建一个源图像一样的IplImage指针
18
19 IplImage* dst = cvCreateImage(cvGetSize(src),src->depth,1);
20
21
22 //色彩空间转换,转换类型为CV_BGR2GRAY
23
24 cvCvtColor(src,dst,CV_BGR2GRAY);
25
26
27 //显示灰度图
28
29 cvShowImage("GRAY",dst);
30
31
32 //释放资源
33
34 cvReleaseImage(&dst);
35
36
37 //Wait for the user to hit a key, then clean up the windows
38
39 cvWaitKey(0);
40
41 cvDestroyWindow("RGB");
42
43 cvDestroyWindow("GRAY");
44
45 }


 

 1 //主函数
2
3 int main(int argc, char** argv)
4
5 {
6
7 IplImage* img = cvLoadImage(argv[1]);
8
9 RGB2GRAY(img);
10
11 while(1)
12
13 {
14 if(cvWaitKey(100)==27)
15
16 break;
17 }
18
19
20 cvReleaseImage(&img);
21
22 exit(0);
23
24 }


 

posted on 2012-02-11 16:21  【無語】  阅读(26577)  评论(0编辑  收藏  举报

导航