我想显示两个图像,并用Python中的黑色光束直观地分开它们。我的问题是,我在Plot-Window中使用cv2.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()
如果我在没有黑色光束的情况下绘制两张图片,我也会得到原始颜色。有谁知道这个黑色光束有什么问题吗?
系统:Windows 10
IDE:Spyder(Python 2.7)
默认的np.ndarray.dtype
是np.float64
,而对于图像,它应该是np.uint8
。
这一行:
beam = np.zeros((hight,10,3))
然后,beam
,horixxx
和small
都是np.float64
。所以你展示了float64
。但是当写,被截断到np.uint8
。
它应该改为:
beam = np.zeros((hight,10,3), np.uint8)