2013-02-09 4 views
3

나는 정말이 문제에 난처합니다. 나는 내 코드에서 [BGR2GRAY] 이전의 이미지를 가지고 있으며, 이제는 색칠 된 원 등을 추가해야합니다. 물론 이것은 1 개 채널 행렬에서 수행 할 수없는, ANS I 3.opencv2로 1 채널 이미지를 3 채널로 변환하는 방법은 무엇입니까?

numpy.dstack()에 다시 저주 일을 켤 수없는 것 모든

GRAY2BGR이 opencv2에 존재하지 않는 충돌

cv.merge (src1, src2, src3, dst)가 cv2.merge (mv)로 바뀌 었습니다. 여기서 mv = "행렬 벡터"입니다.

아이디어가 있으십니까?

Opencv2.4.3 refmanual

답변

5

은 수행의 방법 파이썬에서 그 :

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); 
관련 문제