如何使用Python裁剪图像中的矩形

如何使用Python裁剪图像中的矩形,python,opencv,image-processing,Python,Opencv,Image Processing,有人能告诉我如何裁剪这两个矩形框并保存它吗? 我已经尝试过这段代码,但效果不太好 导入cv2; 输入numpy作为np; #使用图像名称运行代码,继续按空格键 #相应地更改内核、迭代、轮廓区域和位置 #这些值适用于您当前的形象 img=cv2.imread(“your_image.jpg”,0); h、 w=图像形状[:2] kernel=np.one((15,15),np.uint8) e=cv2.Decreate(img,内核,迭代次数=2) d=cv2.deflate(e,内核,迭代次数

有人能告诉我如何裁剪这两个矩形框并保存它吗?

我已经尝试过这段代码,但效果不太好

导入cv2;
输入numpy作为np;
#使用图像名称运行代码,继续按空格键
#相应地更改内核、迭代、轮廓区域和位置
#这些值适用于您当前的形象
img=cv2.imread(“your_image.jpg”,0);
h、 w=图像形状[:2]
kernel=np.one((15,15),np.uint8)
e=cv2.Decreate(img,内核,迭代次数=2)
d=cv2.deflate(e,内核,迭代次数=1)
ret,th=cv2.阈值(d,150255,cv2.阈值\u二进制\u INV)
掩码=np.0((h+2,w+2),np.uint8)
cv2.溢流填充(th,面罩,(200200),255);#位置=(200200)
out=cv2。按位_非(th)
out=cv2.deflate(out,内核,迭代次数=3)
cnt,h=cv2.查找对象(out,cv2.检索树,cv2.链近似简单)
对于范围内的i(len(cnt)):
面积=cv2。轮廓面积(cnt[i])

如果(面积>10000和面积如果您有矩形的坐标,您可以尝试:

cropped = img [y1:y2, x1:x2]

cv2.imwrite('cropped.png', cropped)

第一行根据给定的坐标裁剪图像(Y1你的区域谢谢你的提示我使用了尝试和错误的方法来改变大小。但是我又遇到了一个问题。它没有按照我想要的那样完美地裁剪。你也能帮我吗?样本裁剪是附加的,它裁剪不完美。我正在使用这种变换方法和扭曲,但我只是一个初学者,所以我很难。th谢谢,谢谢你的回复,但是坐标会随着我改变图片而改变,因为我正在按照图案裁剪,而图案就是图片中的方形框。不幸的是,我不能使用坐标裁剪,因为当我使用代码处理不同的图片时,框的坐标会改变,因为我不知道用不同的图像创建一个固定的坐标。
cropped = img [y1:y2, x1:x2]

cv2.imwrite('cropped.png', cropped)