我正在尝试使用selectROI
裁剪感兴趣的区域。但是在我的代码中,selectROI
总是作为元组返回(0,0,0,0)。我尝试了不同的图像,但问题仍然存在。有人能帮我吗?在
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('diff-overlay.jpg')
r = cv2.selectROI("Image", img, False, False)
imCrop = img[int(r[1]):int(r[1]+r[3]), int(r[0]):int(r[0]+r[2])]
cv2.imshow("Image", imCrop)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像右上角为原点
X
向下增加Y
从左到右递增左上角是
x1,y1
左下角是x2,y2
所以图像[y1:y2,x1:x2]应该会给你所选的感兴趣区域
Image ROI
您需要裁剪使用鼠标显示的图像上的区域。选择感兴趣的区域后,按
Enter
键,它将返回裁剪后的图像。现在当您检查r
的值时,它将返回裁剪图像左上角和右下角坐标的元组。在代码:
插图:
假设我有以下图像:
现在,当代码执行
r = cv2.selectROI(im, False, False)
时,图像会出现在您可以使用鼠标裁剪的地方:按下“回车”键(或任何其他键),将显示裁剪后的图像:
就这些了!!在
r
返回一个元组,在本例中是:(31, 65, 125, 120)
在哪里
^{pr2}$相关问题 更多 >
编程相关推荐