我如何cv2.im显示大尺寸图像?

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

我正在尝试cv2.imshow我的图像进行透视变换。

但是,我的图像很大,所以看不到整个图片:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9ua01reS5qcGcifQ==” alt =“在此处输入图像描述”>“ >>

我该如何解决此问题?

下面是我的代码:

import cv2
import os
import numpy as np

image_path = "1.jpg"
filename, ext = os.path.splitext(os.path.basename(img_path))
ori_img = cv2.imread(img_path)


src = []

# mouse callback handler
def mouse_handler(event, x, y, flags, param):
  if event == cv2.EVENT_LBUTTONUP:
    img = ori_img.copy()

    src.append([x, y])

    for xx, yy in src:
      cv2.circle(img, center=(xx, yy), radius=5, color=(0, 255, 0), thickness=-1, lineType=cv2.LINE_AA)

    cv2.imshow('img', img)

    # perspective transform
    if len(src) == 4:
      src_np = np.array(src, dtype=np.float32)

      width = max(np.linalg.norm(src_np[0] - src_np[1]), np.linalg.norm(src_np[2] - src_np[3]))
      height = max(np.linalg.norm(src_np[0] - src_np[3]), np.linalg.norm(src_np[1] - src_np[2]))

      dst_np = np.array([
        [0, 0],
        [width, 0],
        [width, height],
        [0, height]
      ], dtype=np.float32)

      M = cv2.getPerspectiveTransform(src=src_np, dst=dst_np)
      result = cv2.warpPerspective(ori_img, M=M, dsize=(width, height))

      cv2.imshow('result', result)
      cv2.imwrite(r'projetive_image/%s_result%s' % (filename, ext), result)

# main
cv2.namedWindow('img')
cv2.setMouseCallback('img', mouse_handler)

cv2.imshow('img', ori_img)
cv2.waitKey(0)

我正在尝试cv2.imshow我的图像进行透视变换。但是,我的图像很大,所以看不到整个图片:如何解决这个问题?以下是我的代码:import cv2 ...

python opencv
2个回答
3
投票

[显示图像之前,您可以简单地使用cv2.resize缩小图像,或者如果要保持宽高比,则可以使用cv2.resize。另一种方法是简单地使用imutils.resize保存图像,然后在系统的本机图像查看器中将其打开。


0
投票

代替显示之前的调整图像大小

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