在imshow中用黑豆分开两张照片

问题描述 投票:1回答:1

我想显示两个图像,并用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()

运行代码后,我在绘图窗口中得到以下图片:enter image description here

保存的“combi.png”文件显示正确的颜色:enter image description here

如果我在没有黑色光束的情况下绘制两张图片,我也会得到原始颜色。有谁知道这个黑色光束有什么问题吗?

系统:Windows 10

IDE:Spyder(Python 2.7)

python opencv
1个回答
2
投票

默认的np.ndarray.dtypenp.float64,而对于图像,它应该是np.uint8

这一行:

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

然后,beamhorixxxsmall都是np.float64。所以你展示了float64。但是当写,被截断到np.uint8


它应该改为:

beam = np.zeros((hight,10,3), np.uint8) 
© www.soinside.com 2019 - 2024. All rights reserved.