如何显示调整大小的图像 OpenCV imshow()

How to show resized image OpenCV imshow()

我有一张 3000x4000 的图片,我正在使用以下代码:

import cv2 as cv
im = cv.imread ('we.jpg', cv.IMREAD_IGNORE_ORIENTATION) # So the image appears in horizontal
cv.imshow ("", im)

而且图片打开后是真实比例的,这让我无法完整地看到它(只有一部分图片是可见的)。

有没有什么方法可以查看缩放后的图像,使其可以按其尺寸进行操作,但在查看图像时,它看起来是完整的?提前致谢!

也许你可以这样做:

import sys
import cv2
import numpy as np

down_scale = 4

dir = sys.path[0]
original = cv2.imread(dir+'/im.png')
h, w = original.shape[:2]

small = cv2.resize(original.copy(), (w//down_scale, h//down_scale))
cv2.imshow('Small Image', small)

# Do whatever you like here.
# For example, you found the coordinates on
# the small image and now you want to find
# it on the big image.

positionOnSmallImage = (10, 10)
positionOnLargeImage = (10*down_scale, 10*down_scale)

cv2.waitKey(0)

只需说:cv.namedWindow("thewindow", cv.WINDOW_NORMAL)(在相应的 imshow 调用之前)

这使得 window 可以调整大小。

如果您希望 window 使用线性插值(可能有也可能没有 gamma 感知...),请添加 WINDOW_OPENGL 标志。一些 GUI 后端通常使用最近邻“插值”(例如 win32)。