2014-04-17 11 views
3

numpy 및 Python으로 OpenCV를 사용하고 있습니다. 난 2D uint8 numpy 배열이 있습니다. 값은 임계 값 이미지의 임계 값 초과 픽셀의 로컬 밀도를 나타냅니다. 모든 RGB 값을 동일하게 설정하여 3 차원 RGB 이미지로 변환하고 싶습니다. 기본적으로 최대 값이 (255,255,255) 인 그레이 스케일 이미지가 그 밖의 모든 것들에 맞게 조정됩니다. (OpenCV로 비디오에 쓸 수있는 유일한 종류의 이미지 인 것 같기 때문에 RGB가 필요합니다.) 가장 효율적인 방법은 무엇입니까?2 차원 numpy 배열을 그레이 스케일 이미지를 나타내는 3 차원 numpy 배열로 변환합니다.

답변

3

나는 당신이 2D 그레이 스케일 이미지가 있다고 가정은 무엇인가 : 당신은 효율적인 방법으로 BGR로 이미지를 변환 할 수 있습니다

>>> print(img_gray.shape) 
(440, 440) 

: 이제

>>> import cv2 
>>> img_gray = cv2.imread('./440px-Lenna.png', cv2.CV_LOAD_IMAGE_GRAYSCALE) # image take from http://en.wikipedia.org/wiki/Lenna 

img_gray 그레이 스케일 이미지를 포함 를 사용하여 cv2.cvtColor :

>>> img_bgr = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR) 
>>> print(img_bgr.shape) 
(440, 440, 3) 
관련 문제