2013-02-09 77 views
3

我真的很難過這個。我的代碼早些時候有一個[BGR2GRAY] d的圖像,現在我需要添加彩色圓圈等。當然,這不能在1個信道矩陣來完成,答我似乎無法把該死的東西放回3.如何使用opencv2將1通道圖像轉換爲3通道?

numpy.dstack()崩潰一切

GRAY2BGR不存在opencv2無論如何,cv.merge(src1,src2,src3,dst)已變成cv2.merge(mv),其中mv =「矩陣向量」。

任何想法?

Opencv2.4.3 refmanual

回答

5

這裏做的一種方式,在Python:

img = cv2.imread("D:\\img.jpg") 
gray = cv2.cvtColor(img, cv.CV_BGR2GRAY) 

img2 = np.zeros_like(img) 
img2[:,:,0] = gray 
img2[:,:,1] = gray 
img2[:,:,2] = gray 

cv2.circle(img2, (10,10), 5, (255,255,0)) 
cv2.imshow("colour again", img2) 
cv2.waitKey() 
0

我不能說一下蟒蛇,但我可以告訴你的C++接口...

gray_image //you have it already 
Mat im_coloured = Mat::zeros(gray_image.rows,gray_image.cols,CV_8UC3); 

vector<Mat> planes; 

for(int i=0;i<3;i++) 
    planes.push_back(gray_image); 

merge(planes,im_coloured); 
相關問題