一般日常所見的影像都是RGB色彩,然而想要分析影像有時需要轉換色彩空間,如HSV和YUV,原來OpenCV可以幫我做到!
程式碼非常簡短,呼叫cvCvtColor()即可轉換色彩空間,接著顯示轉換過後的影像。
/**
Theme: Transform Color Space
compiler: Dev C++ 4.9.9.2
Date: 100/06/15
Author: ShengWen
Blog: https://cg2010studio.wordpress.com/
*/
#include <cv.h>
#include <highgui.h>
using namespace std;
int main(){
IplImage * src= cvLoadImage("apple.jpg");
//創造和src一樣的IplImage資料結構
IplImage* hsv = cvCreateImage( cvGetSize(src), 8, 3 );
IplImage* yuv = cvCreateImage( cvGetSize(src), 8, 3 );
//輸入圖像轉換到HSV&YUV顏色空間
cvCvtColor( src, hsv, CV_BGR2HSV );
cvCvtColor( src, yuv, CV_BGR2YCrCb );
cvNamedWindow( "Source-RGB", 1 );
cvShowImage( "Source-RGB", src );
cvNamedWindow( "Source-HSV", 1 );
cvShowImage( "Source-HSV", hsv );
cvNamedWindow( "Source-YUV", 1 );
cvShowImage( "Source-YUV", yuv );
cvWaitKey(0);
return EXIT_SUCCESS;
}



Comments on: "[OpenCV] 轉換色彩空間 (Transform Color Space)" (3)
謝謝版大分享,我正好急著需要><"
讚讚
很高興幫助到你! 🙂
讚讚
[…] 先前已寫過轉換色彩空間 (Transform Color Space),但那時沒有測試到Lab色彩空間。當前研究需要使用CIE L*a*b*色彩空間,於是再次實驗該程式碼,並有深入瞭解各色彩空間相互轉換的數學關係。 […]
讚讚