当图像很小时,cv2.imshow()无法正常工作。
import numpy as np
import cv2
im = np.ones((5, 10, 3)) * 255
im = im.astype(np.uint8)
im[:, 5:, :] = np.zeros((5, 5, 3)).astype(np.uint8)
cv2.imshow('1', im)
cv2.imshow('2', cv2.resize(im, dsize=(20, 20), interpolation=cv2.INTER_NEAREST))
touch_img = np.zeros((5, 256, 3))
for i in range(25):
touch_img[:, i*10 + 6:(i+1)*10 + 6, :] = im
touch_img[:, :6, :] = im[:, 4:, :]
cv2.imshow('3', touch_img)
cv2.imshow('4', cv2.resize(touch_img, dsize=(512, 10), interpolation=cv2.INTER_NEAREST))
im = np.ones((1, 2, 3)) * 255
im = im.astype(np.uint8)
im[:, 1:, :] = np.zeros((1, 1, 3)).astype(np.uint8)
cv2.imshow('5', im)
cv2.waitKey(0)
这些代码将创建5个窗口来显示不同的图像。然而,我发现这些图像的显示结果存在以下问题。
1.窗口1未正确显示;
1.窗口2显示正确;
1.窗口3没有正确显示,因为最右边的图像具有一些意外的白色区域。
1.窗口4工作正常。x1c 0d1x
2条答案
按热度按时间zdwk9cvp1#
如果问题是因为图像太小,请在cv2.imshow('window_name ',image)行之前添加以下行:
cv2.namedWindow(“窗口名称”,cv2.窗口正常)
然后,您可以根据需要调整大小。参考:https://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=namedwindow
0kjbasz62#
你可以阅读文档,结果是添加了这一行:
行前:
墙线为: