对于这两种情况,我都有相同的图像(200x200)。我正在实现模板匹配,因此,想法是像模板一样使用此代码的矩形区域:
image = cv.imread('some-image.tif', 0)
cv.rectangle(image,(150, 50),(200,100),(255,0,0),2)
plt.imshow(image, 'gray')
plt.title('With rectangle')
plt.show()
但是,当我在模板匹配代码中运行以下行时,矩形与上面的代码不同:template = image[50:100, 150:200]
为什么我没有相同的投资返回率?我知道表格是[y:y+h, x:x+w]
最佳答案
我认为您一行image = cv.imread(image, 0)
是不正确的语法。您需要在cv.imread()`中使用实际的filename.suffix
您的命令在Python / OpenCV 3中对我来说工作正常
输入:
import cv2
import numpy as np
img = cv2.imread('zelda1.jpg')
cv2.rectangle(img,(150, 50),(200,100),(255,0,0),1)
roi = img[50:100, 150:200]
cv2.imwrite('zelda1_rect.jpg', img)
cv2.imwrite('zelda1_roi.jpg', roi)
cv2.imshow("img", img)
cv2.imshow("roi", roi)
cv2.waitKey(0)
矩形图片:
投资返回率:
关于python - img [y:y + h,x:x + w]坐标系的工作方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62766229/