OPENCV入門教程七:顏色空間轉換?

學習把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檔案

OPENCV入門教程七:顏色空間轉換

在該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);

}

OPENCV入門教程七:顏色空間轉換

點選檢視按鈕,選擇解決方案資源管理器 ,在解決方案中右鍵單擊專案名稱,然後選擇屬性

在屬性頁中選擇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 這兩個東西

OPENCV入門教程七:顏色空間轉換

如果執行失敗則在如圖中的×86改為×64,其左邊的設定為“Debug”

OPENCV入門教程七:顏色空間轉換

轉換結果如下圖

OPENCV入門教程七:顏色空間轉換

注意事項

opencv的正確配置

正確使用cvtColor()函式

顏色, 空間, 範圍, 影象, 明度,
相關問題答案