[問題] Opencv使用cvMerge

看板C_and_CPP (C/C++)作者 (hsiang)時間13年前 (2012/11/03 11:54), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
板上的各位前輩大家好 小弟最近剛開始入門沒多久 看到用cvSplit跟cvMerge的方法可以分出BGR三色彩 但是再用到cvSplit的時候 看顯示出來的灰度值還正確 再用cvMerge顯示彩度的時候就錯誤了 但是看網路上的方法都是這樣 而且顯示出來的也是BGR三色彩沒錯 想請問各位前輩 會是什麼原因呢? 謝謝 難道是我電腦顯示顏色壞掉了嗎... 以下附code #include "cv.h" #include "highgui.h" int main(void) { IplImage *image1 = cvLoadImage("rgb.jpg",1); IplImage *redImage = cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1); IplImage *greenImage = cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1); IplImage *blueImage = cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,1); IplImage *R = cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,3); IplImage *G = cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,3); IplImage *B = cvCreateImage(cvGetSize(image1),IPL_DEPTH_8U,3); cvSplit(image1,redImage,greenImage,blueImage,NULL); cvMerge(blueImage,NULL,NULL,NULL,B); cvMerge(NULL,greenImage,NULL,NULL,G); cvMerge(NULL,NULL,redImage,NULL,R); cvNamedWindow("hello",CV_WINDOW_AUTOSIZE); cvShowImage("hello",image1); cvShowImage("r",R); cvShowImage("g",G); cvShowImage("b",B); cvWaitKey(0); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.222.90

11/03 18:41, , 1F
你 split 用 RGB, merge 用 BGR, cvSplit 要改order
11/03 18:41, 1F

11/04 14:01, , 2F
謝謝樓上提醒,因為做了幾次修改,所以有點錯亂
11/04 14:01, 2F

11/04 14:02, , 3F
可是我把blueImage跟redImage對調後還是一樣
11/04 14:02, 3F

11/04 14:02, , 4F
跑出來的圖,顏色是很奇怪的
11/04 14:02, 4F

11/05 03:07, , 5F
R,G,B要先初始化?
11/05 03:07, 5F
文章代碼(AID): #1Gb9LYwb (C_and_CPP)
文章代碼(AID): #1Gb9LYwb (C_and_CPP)