學習把RGB(紅綠藍)空間的影象轉化為其它空間的影象。 將RGB轉化為HSV(色調(H),飽和度(S),明度(V)) 將RGB轉化為Lab(顏色模型 (Lab) 基於人對顏色的感覺,L表示明度(Luminosity),a表示從洋紅色至綠色的範圍,b表示從黃色至藍色的範圍) 將RGB轉化為YCrCb(其中“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用於指定畫素的顏色)
工具/原料
visual studio 2015
opencv2.4.13
方法/步驟
開啟VS2015選擇檔案,然後新建專案,選擇新建一個Win32控制檯應用程式,並選擇空專案,在原始檔中新增一個名為opencvdemo的CPP檔案
在該cpp檔案中輸入一下程式碼
#include "cv.h" // OpenCV 檔案頭
#include "highgui.h"
#include "cvaux.h"
#include "cxcore.h"
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc.hpp"
#include
#include
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
Mat dst_img;
string imageName("C:\\Users\\lidabao\\Desktop\\Lena.bmp"); // 圖片在電腦中的絕對地址
Mat bgr_img = imread(imageName.c_str(), IMREAD_COLOR);//讀入圖片資料
if (bgr_img.empty())
return -1;
namedWindow("image", 0);
imshow("image", bgr_img);
// BGR -> HSV
cvtColor(bgr_img, dst_img, CV_BGR2HSV);
namedWindow("HSV image", 0);
imshow("HSV image", dst_img);
// BGR -> Lab
cvtColor(bgr_img, dst_img, CV_BGR2Lab);
namedWindow("Lab image", 0);
imshow("Lab image", dst_img);
// BGR -> YCrCb
cvtColor(bgr_img, dst_img, CV_BGR2YCrCb);
namedWindow("YCrCb image", 0);
imshow("YCrCb image", dst_img);
waitKey(0);
}
點選檢視按鈕,選擇解決方案資源管理器 ,在解決方案中右鍵單擊專案名稱,然後選擇屬性
在屬性頁中選擇VC++目錄
在包含目錄中新增 D:\opencv\build\include D:\opencv\build\include\opencv D:\opencv\build\include\opencv2 這三個資料夾 在庫目錄中新增 D:\opencv\build\x64\vc12\lib D:\opencv\build\x64\vc12\staticlib 這兩個資料夾
在屬性頁中選擇連結器,在連結器中點選輸入,在附加依賴項中新增 opencv_ts300d.lib opencv_world300d.lib 這兩個東西
如果執行失敗則在如圖中的×86改為×64,其左邊的設定為“Debug”
轉換結果如下圖
注意事項
opencv的正確配置
正確使用cvtColor()函式