OpenCV C++開發 第二節:圖像處理(一、圖像加載、修改、保存)

上一節的開發環境配置後,就可以直接開始編寫OpenCV代碼了,不羅嗦,直接上代碼。

一、圖像加載、修改、保存

#include <opencv2\opencv.hpp>
#include <highgui.h>
using namespace cv;
int main(int argc, char** argv)
{
	//讀取圖像
	Mat image;
	image = imread("C:\\Users\\Administrator\\Desktop\\test.jpg", IMREAD_UNCHANGED);//IMREAD_UNCHANGED   IMREAD_GRAYSCALE   IMREAD_COLOR   讀取圖片
	Mat invertImage;
	cvtColor(image, invertImage, CV_BGR2GRAY);//變灰  HLS的CV_BGR2HLS
	// 創建窗口
	namedWindow("Test", CV_WINDOW_AUTOSIZE);
	namedWindow("InvertImage", CV_WINDOW_AUTOSIZE);
	// 顯示圖像
	imshow("Test", image);
	imshow("InvertImage", invertImage);
	// 點擊關閉
	waitKey(0);
	imwrite("C:\\Users\\Administrator\\Desktop\\test1.jpg", invertImage);//保存至本地
	destroyWindow("Test");
	destroyWindow("InvertImage");
	return 0;
}

以上代碼中主要的幾個知識點解釋下:

1.imread("C:\\Users\\Administrator\\Desktop\\test.jpg",IMREAD_UNCHANGED);

該方法加載圖像文件成爲一個Mat對象,其中第一個參數表示圖像文件名稱。

第二個參數,表示加載的圖像是什麼類型,支持常見的三個參數值:

(1)IMREAD_UNCHANGED (<0) 表示加載原圖,不做任何改變。

(2)IMREAD_GRAYSCALE ( 0)表示把原圖作爲灰度圖像加載進來。

(3)IMREAD_COLOR (>0) 表示把原圖作爲RGB圖像加載進來。

2.Mat類

Mat是一個圖像類,支持JPGPNGTIFF等常見格式圖像文件加載。

常見的方法有:

(1)複製到新的Mat類

Mat invertImage;

image.copyTo(invertImage);

(2)獲取指定範圍內的圖

Mat invertImage(image, Rect(10, 10, 100, 100));

3.cvtColor( image,invertImage, CV_BGR2GRAY);

該方法的功能是把圖像從一個彩色空間轉換到另外一個色彩空間,有三個參數,第一個參數表示源圖像、第二參數表示色彩空間轉換之後的圖像、第三個參數表示源和目標色彩空間如:COLOR_BGR2HLS COLOR_BGR2GRAY

4.imwrite("C:\\Users\\Administrator\\Desktop\\test1.jpg", invertImage);

該方法是將轉換後的invertImage保存至指定目錄。

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