2017-12-19 7 views
1

두 개의 이미지를 표시하고 파이썬에서 검은 색 빔으로 시각적으로 구분하고 싶습니다. 내 문제는 Plot-Window에 cv2.imshow() 함수가있는 원래 색이 표시되지 않는다는 것입니다.imshow에서 검은 색 빔이있는 두 장의 사진

import cv2 
import numpy as np 

imgloc = 'path\Dosen_py.png' 
img = cv2.imread(imgloc) 
hight = np.shape(img)[0] 
beam = np.zeros((hight,10,3)) 

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
gray_3_channel = cv2.cvtColor(gray, cv2.COLOR_GRAY2BGR) 

horizontal = np.hstack((img,beam,gray_3_channel)) 

small = cv2.resize(horizontal, (0,0), fx=0.5, fy=0.5) 

cv2.imwrite("combi.png",small) 

cv2.imshow("Combi",small) 

cv2.waitKey() 

내가 플롯 창에서 다음 사진을 얻을 코드를 실행 한 후 : enter image description here

: enter image description here

저장된 "combi.png"- 파일이 올바른 색상을 보여줍니다 다음은 내 코드입니다

검은 빔없이 두 개의 그림을 그릴 경우 원본 색상도 얻게됩니다. 누구든지이 검은 광선에 무슨 문제가 있는지 알고 있습니까?

시스템 :

윈도우 10 IDE : 스파이더 (파이썬 2.7)

답변

2

이미지, 그것은 np.uint8을해야하는 동안 기본 np.ndarray.dtype는, np.float64입니다.

이 줄 :

beam = np.zeros((hight,10,3)) 

다음의 beam, horixxxsmall 모든 np.float64이다. 그러면 float64이 표시됩니다. 그러나 쓸 때 np.uint8로 잘 렸습니다.

beam = np.zeros((hight,10,3), np.uint8) 
+0

그것은 작동합니다, 감사합니다 :


그것은 변경해야합니다. –