基本思路:
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 }