2012年4月20日

OpenCV灰階化-使用cvCvtcolor

簡介:
灰階化,是影像處理過程中不可或缺的一部分,很多時候都會用來做為前處理的一部分,那麼我們來看看,在openCV中要如何使用內建的工具來完成呢?



實作方法:
若使用openCV所提供轉灰階的函式,並不是只有單存做灰階化換而已,讓我們來看看manual的介紹:


cvCvtcolor函式其實是一個色彩空間轉換的函式,把某一個色彩空間轉換至另一個色彩空間,例如:RGB -> BGR、RGB -> HSV,而這其中也包含了RGB轉換到灰階的色彩空間,如下圖:




openCV中的灰階化與方式和YUV色彩空間有關,YUV是早期黑白電視與彩色電視過渡期所誕生,早期黑白電視只有Y訊號(亮度),所以僅能呈現灰階值,而這邊就是利用此種方式達到灰階化效果


因此openCV中的灰階影像是以單通道呈現,所以轉換到的色彩空間,記得要是1 channel。


程式碼:
創建單通道的目的影像空間:
IplImage *src = cvLoadImage("your image",CV_LOAD_IMAGE_COLOR); IplImage *dst = cvCreateImage(cvSize(src->width,src->height) ,IPL_DEPTH_8U ,1);

使用cvCvtcolor函式轉換:
cvCvtColor(src,dst,CV_RGB2GRAY);




沒有留言:

ShareThis