opencv 当图像很小时,cv2.imshow()无法正常工作

nafvub8i  于 2023-01-17  发布在  其他
关注(0)|答案(2)|浏览(185)

当图像很小时,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

zdwk9cvp

zdwk9cvp1#

如果问题是因为图像太小,请在cv2.imshow('window_name ',image)行之前添加以下行:
cv2.namedWindow(“窗口名称”,cv2.窗口正常)
然后,您可以根据需要调整大小。参考:https://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=namedwindow

0kjbasz6

0kjbasz62#

你可以阅读文档,结果是添加了这一行:

cv2.namedWindow("Image", cv2.WINDOW_NORMAL)

行前:

cv2.imshow("Image", image)

墙线为:

cv2.namedWindow("Image", cv2.WINDOW_NORMAL)
    cv2.imshow("Image", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

相关问题