cv2.imshow()在图像较小时无法正常工作

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

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不能正确显示;

  2. 窗口2正确显示;

  3. 窗口3不能正确显示,因为最右边的图像具有一些意外的白色区域。

  4. 窗口4正常工作。problem-img

imshow opencv-python
1个回答
0
投票

如果问题来自图像太小,请在cv2.imshow('window_name',image)行之前添加以下行:

cv2.namedWindow('window_name',cv2.WINDOW_NORMAL)] >>

然后您可以将其调整为所需的大小。参考:https://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=namedwindow

© www.soinside.com 2019 - 2024. All rights reserved.