如何从图像中裁剪绿色矩形

时间:2019-04-06 07:50:43

标签: python-3.x opencv

我需要裁剪图像以使用opencv和python对其进行进一步处理。我需要裁剪图像中绿色矩形内的区域。使用“ haar_cascade_fullbody_Detector”绘制矩形

代码如下:

import numpy as np
import cv2

bodydetection = cv2.CascadeClassifier('haarcascade_fullbody.xml')
img = cv2.imread('original.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
body = bodydetection.detectMultiScale(gray, 1.009, 5)

for x, y, w, h in body:
   # so we slightly shrink the rectangles to get a nicer output.
   pad_w, pad_h = int(0.15*w), int(0.02*h)
   cv2.rectangle(img, (x+pad_w+10, y+pad_h+10), (x+w-pad_w, y+h-pad_h), (0, 255, 0), 2)
   cv2.imshow('img',img)
   crop_img = img[x:x+w, y:y+h]
   cv2.imshow('crop',crop_img)

cv2.waitKey(0)
cv2.destroyAllWindows()

输入图像为:

enter image description here

haar级联的输出是:

enter image description here

裁剪后的图像是:

enter image description here

请提出任何解决方案。谢谢!

1 个答案:

答案 0 :(得分:0)

好!我得到了答案。 crop_img的行应修改为

 crop_img = img[y:y+h, x:x+w]

这将产生所需的输出。这是因为在opencv中,img协调序列是y坐标,然后是x坐标。