加載影像: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 函式
cvtColor 是顏色空間轉換函式,可以實作 RGB 顏色、HSV 顏色、HSI 顏色、lab 顏色、YUV 顏色間的轉換,也可以實作彩色和灰度圖互轉,
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 顏色模型
RGB 和 CMY 顏色模型都是面向硬體的,而 HSV(Hue Saturation Value)顏色模型是面向用戶的, HSV 是根據顏色的直觀特性由 A.R.Smith 在1978年創建的一種顏色空間, 也稱六角錐體模型(Hexcone Model), 這個模型中顏色的引數分別是:色調(H),飽和度(S),明度(V),
保存影像:imwrite 函式
void imwrite(const string& filename, InputArray mat);
- filename:待保存影像的儲存位置,
- mat:待保存影像,
imwrite("C:/Users/齊明洋/Desktop/修改后圖片.png", Imags);
代碼示例:
#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;
}
運行結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10375.html
標籤:其他
下一篇:油田系統三維布局可視化解決方案
