【问题标题】:cv2.imshow() does not work properly when the image is smallcv2.imshow() 图像较小时无法正常工作
【发布时间】:2019-07-30 15:00:22
【问题描述】:

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 工作正常。

【问题讨论】:

    标签: imshow opencv-python


    【解决方案1】:

    如果问题来自图像太小,请在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-18
      • 2020-08-04
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多