opencv —— imread、namedWindow & imshow、cvtColor、imwrite 加載、顯示、修改、保存圖像

加載圖像:imread 函數函數

Mat imread(const string& filename, int flags = 1);
  • filename:須要載入的圖像的路徑名。
  • flags:加載圖像的顏色類型,默認值爲 1。flags = 1(IMREAD_COLOR):返回一個 BGR 類型的三通道彩色圖像;flags = 0(IMREAD_GRAYSCALE):返回灰度圖像;flags = -1(IMREAD_UNCHANGED):返回包含 Alpha 通道的加載圖像
Mat src_1 = imread("C:/Users/齊明洋/Desktop/1.jpg");
Mat src_0 = imread("C:/Users/齊明洋/Desktop/1.jpg", 0);

 

顯示圖像:namedWindow 與 imshow 函數測試

void nameWindow(const string& winname, int flags = WINDOW_AUTOSIZE) ;
  • winname:新建窗口的名稱。
  • flags:窗口的標識,默認爲 WINDOW_AUTOSIZE 。
  • WINDOW_AUTOSIZE 窗口大小自動適應圖片大小,而且不可手動更改。
    WINDOW_NORMAL 用戶能夠改變這個窗口大小。
namedWindow("測試窗口");//窗口自動適應圖片大小,大小不可手動更改
namedWindow("測試窗口", WINDOW_NORMAL);//用戶能夠改變窗口大小

 

void imshow(const string& winname, InputArray mat);
  • winname:展現窗口的名稱,未使用 nameWindow 建立窗口時,自動建立窗口。
  • mat:展現圖片。
imshow("測試窗口", Imags);

 

修改圖像:cvtColor 函數spa

void cvtColor(InputArray src,  OutputArray dst,  int code,  int dstCn = 0);
  • src :原圖像。
  • dst :進行顏色空間變換後的圖像。
  • code :轉換的代碼或標識,即要轉換成什麼顏色空間的圖片。
  • dstCn = 0 :目標圖像通道數,可使用默認值,什麼都不寫。
cvtColor(Imags, Imags2, COLOR_BGR2HSV);//BGR 顏色模型向 HSV 顏色模型轉換
cvtColor(Imags, Imags2, COLOR_BGR2GRAY);
//BGR 顏色模型向 GRAY 顏色模型轉換

 

HSV 顏色模型3d

RGB 和 CMY 顏色模型都是面向硬件的,而 HSV(Hue Saturation Value)顏色模型是面向用戶的。 HSV 是根據顏色的直觀特性由 A. R. Smith 在1978年建立的一種顏色空間, 也稱六角錐體模型(Hexcone Model)。 這個模型中顏色的參數分別是:色調(H),飽和度(S),明度(V)。

 

保存圖像:imwrite 函數code

void imwrite(const string& filename, InputArray mat);
  • filename:待保存圖像的儲存位置。
  • mat:待保存圖像
imwrite("C:/Users/齊明洋/Desktop/修改後圖片.png", Imags);

 

代碼示例:blog

#include <opencv.hpp> 
using namespace cv; int main() { Mat Imags = imread("C:/Users/齊明洋/Desktop/tem.jpg"); if (Imags.empty()) { printf("不能加載圖像!"); return -1; } namedWindow("測試窗口2", WINDOW_NORMAL); Mat Imags2; cvtColor(Imags, Imags2, COLOR_BGR2HSV);//RGB 顏色模型向 HSV 顏色模型轉換 
    imshow("測試窗口", Imags); imshow("測試窗口2", Imags2); imwrite("C:/Users/齊明洋/Desktop/修改後圖片.png", Imags2); waitKey(0); return 0; }

 

運行結果:圖片

 

相關文章
相關標籤/搜索