2013-04-26 3 views
5

파이썬에서 cv2 opencv 래퍼를 사용하여 멀티 채널 매트 오브젝트를 만들고 싶습니다.파이썬에서 cv2로 멀티 채널 제로 매트 만들기

그물에 C++ Mat :: zeros가 numpy.zeros로 대체 된 예제가 있습니다. 하지만 멀티 채널 유형은

모양의 코드를 ... 맞는 것 같다 :

import cv2 
import numpy as np 

size = 200, 200 
m = np.zeros(size, dtype=np.uint8) # ? 
m = cv2.cvtColor(m, cv2.COLOR_GRAY2BGR) 
p1 = (0,0) 
p2 = (200, 200) 
cv2.line(m, p1, p2, (0, 0, 255), 10) 

cv2.namedWindow("draw", cv2.CV_WINDOW_AUTOSIZE) 
while True: 
    cv2.imshow("draw", m) 

    ch = 0xFF & cv2.waitKey(1) 
    if ch == 27: 
     break 
cv2.destroyAllWindows() 

내가 m = cv2.cvtColor(m, cv2.COLOR_GRAY2BGR)하지만 어느 cv2.CV_8UC3np.uin32 일을 피하려고.

몇 가지 힌트가 있습니까?

답변

12

size으로 이것을보십시오 :

img = cv2.imread('/tmp/1.jpg') 
print img.shape, img.dtype 
# (398, 454, 3), uint8 

그러나 사람은 아마뿐만 아니라 OpenCV의 문서에서 찾을 수 있습니다 :

size = 200, 200, 3 
m = np.zeros(size, dtype=np.uint8) 

을 내가 매트릭스를 위해 필요한 인수를 찾을했다 기본적으로 무엇을하는 것입니다.

+0

설명서에있는 부분을 참조하십시오. – nkint

+0

흠,이 공식적인 opencv 문서를 찾을 수 없다는 것을 분명히 알았습니다.이 방법으로해야만한다는 것을 알았습니다. 색상 이미지에 대해 3 개의 레이어/크기가 필요한 "일반적인 지식"이라고 생각합니다. 그러나 나는 [이] (http://stackoverflow.com/questions/12881926/create-a-new-rgb-opencv-image-using-python) 그래서 질문을 찾을 수있었습니다. – gatto

관련 문제