上一節(jié)的開發(fā)環(huán)境配置后署穗,就可以直接開始編寫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
// 創(chuàng)建窗口
namedWindow("Test", CV_WINDOW_AUTOSIZE);
namedWindow("InvertImage", CV_WINDOW_AUTOSIZE);
// 顯示圖像
imshow("Test", image);
imshow("InvertImage", invertImage);
// 點擊關(guān)閉
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對象诺舔,其中第一個參數(shù)表示圖像文件名稱。
第二個參數(shù)备畦,表示加載的圖像是什么類型低飒,支持常見的三個參數(shù)值:
(1)IMREAD_UNCHANGED (<0) 表示加載原圖,不做任何改變萍恕。
(2)IMREAD_GRAYSCALE ( 0)表示把原圖作為灰度圖像加載進(jìn)來逸嘀。
(3)IMREAD_COLOR (>0) 表示把原圖作為RGB圖像加載進(jìn)來。
2.Mat類
Mat是一個圖像類允粤,支持JPG崭倘、PNG、TIFF等常見格式圖像文件加載类垫。
常見的方法有:
(1)復(fù)制到新的Mat類
Mat?invertImage;
image.copyTo(invertImage);
(2)獲取指定范圍內(nèi)的圖
Mat invertImage(image, Rect(10, 10, 100, 100));
3.cvtColor(?image,invertImage, CV_BGR2GRAY);
該方法的功能是把圖像從一個彩色空間轉(zhuǎn)換到另外一個色彩空間司光,有三個參數(shù),第一個參數(shù)表示源圖像悉患、第二參數(shù)表示色彩空間轉(zhuǎn)換之后的圖像残家、第三個參數(shù)表示源和目標(biāo)色彩空間如:COLOR_BGR2HLS 、COLOR_BGR2GRAY 等
4.imwrite("C:\\Users\\Administrator\\Desktop\\test1.jpg", invertImage);
該方法是將轉(zhuǎn)換后的invertImage保存至指定目錄售躁。