Opencv3從頭開始(一)圖像讀取、保存、顯示
趁有時間把淺墨大佬的opencv入門重新理解一下,從頭開始,有一起的小夥伴歡迎加入哦。
主要內容爲實戰代碼,帶有部分理解。
當然這次特地帶上了倉老師一起學習。
標配框架
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[]){
Mat image;
waitKey(0);
return 0;
}
Mat類用於定義一個矩陣變量,常用於存儲圖像,也就是說,讀取圖像前必須要定義一個Mat類中。
圖像讀取
imread內有兩個參數,默認爲1,即默認顯示3通。當修改爲0時,爲灰度圖像。
Mat image,image_1;
image=imread("倉老師.jpg");
image_1=imread("倉老師.jpg",0);
窗口定義
namedWindow設置窗口標識和窗口類型
namedWindow("image",CV_WINDOW_NORMAL);//可以改變窗口的大小
namedWindow("image_1",CV_WINDOW_AUTOSIZE);//自動調整窗口,不能手動改變
圖像顯示
imshow有兩個參數,一是窗口標識名,二是顯示圖像
imshow("image",image);
imshow("image_1",image_1);
關閉窗口
destroyWindow("image");
destroyAllWindows();
保存圖片
imwrite("gray_cang.jpg",image_1);
給倉老師加個man?
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[]){
Mat image,image_1;
//圖像顯示
image=imread("倉老師.jpg");
image_1=imread("man.jpg");
//namedWindow("image",CV_WINDOW_NORMAL);
//namedWindow("image_1",CV_WINDOW_AUTOSIZE);
//imshow("image",image);
//imshow("image_1",image_1);
resize(image_1,image_1,Size(100,100));
Mat image_roi;
image_roi=image(Rect(400,400,image_1.cols,image_1.rows));
addWeighted(image_roi,0.8,image_1,0.3,0.2,image_roi);
imshow("add",image);
// destroyWindow("image");
// destroyAllWindows();
//imwrite("cang.jpg",image_1);
waitKey(0);
return 0;
}