1. 程式人生 > >【第二課:C++和opencv】改為灰度圖和儲存圖片

【第二課:C++和opencv】改為灰度圖和儲存圖片

這個程式和【第一課】差不多,只是增加儲存函式imwrite()和cvtColor()

【編譯環境:opencv2.4.4和VS2008】

#include "stdafx.h"
#include "opencv2/opencv.hpp"

using namespace cv;
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	//建立Mat指標
	Mat src;
	Mat src_gray;
	//載入圖片
	src= imread("F://Opencv_picture//44.jpg", CV_LOAD_IMAGE_COLOR);
    if(!src.data)
	{
	     cout<<"Could not open or find the iamge"<< endl;
		 return -1;
	}
	//改為灰色圖片
        cvtColor(src, src_gray, COLOR_BGR2GRAY);
	 //儲存圖片
	 imwrite("gray_image.jpg", src_gray);
	//建立視窗
        namedWindow("Display");
	namedWindow("Display_gray", CV_WINDOW_AUTOSIZE);
	//顯示圖片
	imshow("Display", src);
	imshow("Display_gray", src_gray);
        //暫停,等待按鍵響應退出
	waitKey(0);

	return 0;
}

**********************************************************

相同部分就不講了^_^,不懂自己去看【第一課】

(1)把一種顏色轉換為另一種顏色

      C++: void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )

      C: void cvCvtColor(const CvArr* src, CvArr* dst, int code)

    (2)儲存圖片

      C++: bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>() )

      C: int cvSaveImage(const char* filename, const CvArr* image, const int* params=0 )

  PS:由【第一課】和【第二課】得知,opencv在C++和C語言中有些函式變化相差不大,很多就是相同單詞組合,但沒有【 cv 】這個字首;也有變了單詞,但意思沒變,比如儲存圖片函式imwrite()和cvSaveImage。