OpenCV學習記錄1

一、學習內容

1 加載圖像  imread

2 修改顏色空間 cvtColor

3 保存圖像 imwrite


二、代碼調試

2.1 讀取灰度圖像 imread

Mat src = imread("E:/ZL_OpenCv_Projects/NeZha.jpg",IMREAD_GRAYSCALE);

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main(int argc, char** argv) {
	Mat src = imread("E:/ZL_OpenCv_Projects/NeZha.jpg",IMREAD_GRAYSCALE);
	if (src.empty()) {
		printf("Empty!");
		return -1;
	}
	namedWindow("Figure1", CV_WINDOW_AUTOSIZE);
	imshow("Figure1", src);

	waitKey(0);
	return 0;
}

2.2  顏色空間轉換 cvtColor

#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>

using namespace cv;

int main(int argc, char** argv) {
	Mat src = imread("E:/ZL_OpenCv_Projects/NeZha.jpg");
	if (src.empty()) {
		printf("Empty!");
		return -1;
	}
	namedWindow("Figure1", CV_WINDOW_AUTOSIZE);
	imshow("Figure1", src);

	//顏色空間轉換
	Mat output;
	cvtColor(src,output,CV_BGR2GRAY);
	namedWindow("Figure2", CV_WINDOW_AUTOSIZE);
	imshow("Figure2",output);

	waitKey(0);
	return 0;
}

備註:調試此代碼時,本人沿用上一程序2.1中的代碼,調試時出現異常。

原因在於:本程序的顏色空間轉換是將RGB轉化爲GRAY,而上一程序的執行之後,src已是gray不再是rgb,因此出現異常。

程序雖然簡單,但要頭腦清醒啊。

2.3 保存圖像imwrite

#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>

using namespace cv;

int main(int argc, char** argv) {
	Mat src = imread("E:/ZL_OpenCv_Projects/NeZha.jpg");
	if (src.empty()) {
		printf("Empty!");
		return -1;
	}
	namedWindow("Figure1", CV_WINDOW_AUTOSIZE);
	imshow("Figure1", src);

	//顏色空間轉換
	Mat output;
	cvtColor(src,output,CV_BGR2GRAY);
	namedWindow("Figure2", CV_WINDOW_AUTOSIZE);
	imshow("Figure2",output);

	//保存
	imwrite("E:/ZL_OpenCv_Projects/NeZhaGray.jpg",output);
	waitKey(0);
	return 0;
}

正常。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章