コードは以下の通りであります:
1の#include <cv.h>
2の#include <highgui.h>
3
4 使用して 名前空間の品種;
5
6 INTメイン(int型 ARGC、チャー ** ARGV)
7 {
8 であれば(ARGC =!2 )
9 {
10 のprintf(" useage:%S <画像ファイル> \ n "、ARGV [ 0 ])。
11 リターン - 1 。
12 }
13 のchar * imagenameの=のargv [ 1 ]。
14
15 マット画像。
16 画像= 関数imread(imagenameの、CV_LOAD_IMAGE_COLOR)。
17
18 であれば(!image.data)
19 {
20 のprintf(" いいえ画像データ\ n " );
21 リターン - 1 。
22 }
23
24 マットgray_image。
25 cvtColor(画像、gray_image、CV_BGR2GRAY)。
26
27
28 関数imwrite(" ../../images/Gray_Image.jpg " 、gray_image)。
29
30 namedWindow(imagenameの、CV_WINDOW_AUTOSIZE)。
31 namedWindow(" グレー画像" 、CV_WINDOW_AUTOSIZE)。
32
33 関数imshow(imagenameの、画像)
34 関数imshow(" グレー画像" 、gray_image)。
35
36 waitKey(0 )。
37
38 戻り 0 ;
39 }
コメント
-
まず第一に:
- マットの作成、画像のコンテンツを保存するために使用。
- 関数imreadは、読み取った画像、画像パス使用 imagenameのを BGR形式を読み取る画像によれば、。
-
次は、RGB形式の画像をグレースケールに変換されます。準備変換関数でOpenCVの:
cvtColor (画像、gray_image 、CV_BGR2GRAY )。
cvtColorのパラメータは次のとおりです。
- 源图像 (image) 。
- 目标图像 (gray_image),用于保存转换图像。
- 附加参数,用于指定转换的类型,例子中使用参数 CV_BGR2GRAY 。参数的具体定义请参见cvColor函数的API文档。
-
然后,使用函数 imwrite 将得到的灰度图像 gray_image 保存到硬盘。程序结束时,该灰度图像将会被释放。
imwrite( "../../images/Gray_Image.jpg", gray_image );
该函数,将图像写入到指定的文件夹下,程序执行时需保证该文件夹存在。示例中,将得到的灰度图像写到../../images/下,命名为Gray_Image.jpg。
-
最后,为了检验图像是否正确,将原始图像和灰度图像分别显示到打开的窗口中:
namedWindow( imageName, CV_WINDOW_AUTOSIZE ); namedWindow( "Gray image", CV_WINDOW_AUTOSIZE ); imshow( imageName, image ); imshow( "Gray image", gray_image );
-
结尾的 waitKey(0) 函数,用于等待用户的按键操作来关闭窗口。