[問題] OpenCV 圖檔通道問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
openCV
問題(Question):
目的:
讀取.jpg -> 分別存成 R G B 三色圖檔
問題一.
我要得到R的圖
發現必須把讀進來的image中 channel 2跟3 相加
才會等於紅色
所以channel並不是RGB組成 而是CMY color space嗎?
問題二.
若我有一張RGB圖檔,我要用RGB轉YCrCb的公式去轉成YCrCb
http://ycc.tsu.edu.tw/9312/index.files/page0010.htm
我可以直接把計算完的Y值直接存到
cvCreateImage產生出的3 channel圖檔中
的其中一個channel嗎?
餵入的資料(Input):
.jpg
預期的正確結果(Expected Output):
紅色.jpg
藍色.jpg
綠色.jpg
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
IplImage *image = cvLoadImage(filename,CV_LOAD_IMAGE_COLOR);
IplImage *Y_Channel=cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,1);
IplImage *C_Channel=cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,1);
IplImage *M_Channel=cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,1);
cvSplit(image,C_Channel,M_Channel,Y_Channel,0);
IplImage *Blue_image = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
IplImage *Red_image = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
IplImage *Green_image = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
cvMerge(C_Channel,M_Channel,0,0,Red_image);//RED
cvMerge(0,M_Channel,Y_Channel,0,Blue_image);//BLUE
cvMerge(C_Channel,0,Y_Channel,0,Green_image);//GREEN
必需要兩個channel合起來才會是RED ,BLUE ,GREEN圖
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.239.227
推
05/04 16:40, , 1F
05/04 16:40, 1F
→
05/04 16:40, , 2F
05/04 16:40, 2F
→
05/06 00:53, , 3F
05/06 00:53, 3F
→
05/06 00:54, , 4F
05/06 00:54, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章