亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何 cv2.imshow 大尺寸圖像?

如何 cv2.imshow 大尺寸圖像?

素胚勾勒不出你 2022-07-26 09:09:30
我正在嘗試對cv2.imshow我的圖像進行透視轉換。但是,我的圖像很大,所以我看不到整個畫面:我該如何解決這個問題?以下是我的代碼:import cv2import osimport numpy as npimage_path = "1.jpg"filename, ext = os.path.splitext(os.path.basename(img_path))ori_img = cv2.imread(img_path)src = []# mouse callback handlerdef 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)# maincv2.namedWindow('img')cv2.setMouseCallback('img', mouse_handler)cv2.imshow('img', ori_img)cv2.waitKey(0)
查看完整描述

2 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

在顯示圖像之前,您可以簡單地使用縮小圖像大小,cv2.resize或者如果您想保持縱橫比,您可以使用imutils.resize. 另一種方法是簡單地保存圖像,cv2.imwrite然后在系統的本機圖像查看器中打開它。


import cv2

import imutils


image = cv2.imread('1.jpg')


# Downsize without aspect ratio

image1 = cv2.resize(image, (500,500), interpolation=cv2.INTER_AREA)


# Downsize and maintain aspect ratio

image2 = imutils.resize(image, width=800)


cv2.imshow('image1', image1)

cv2.imshow('image2', image2)

cv2.waitKey()


查看完整回答
反對 回復 2022-07-26
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

除了在顯示之前調整圖像大小,您還可以使用 調整顯示圖像的窗口cv2.resizeWindow的大小。因此,您需要在調用中設置cv2.WINDOW_NORMAL WindowFlagcv2.namedWindow。


那將是一個最小的例子:


import cv2

import numpy as np


img = np.random.randint(0, 255, (4000, 3000, 3), np.uint8)


cv2.namedWindow('img', cv2.WINDOW_NORMAL)

cv2.resizeWindow('img', 800, 600)


cv2.imshow('img', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

希望有幫助!


----------------------------------------

System information

----------------------------------------

Platform:    Windows-10-10.0.16299-SP0

Python:      3.8.1

NumPy:       1.18.1

OpenCV:      4.2.0

----------------------------------------


查看完整回答
反對 回復 2022-07-26
  • 2 回答
  • 0 關注
  • 264 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號