如何在裁剪图像中获取 x、y、w、h 的每个值?

How to get each value of x,y,w,h in this crop image?

我想问一下。在opencv中有cv2.rectangle来构建感兴趣的对象矩形。在我得到用矩形表示的对象兴趣之后,我想得到感兴趣区域框。为此,我使用了 crop = frame[y:y+h, x:x+w].

现在我想获取那个裁剪框的 x,y,w,h 的值。怎么做?

这是我的代码

while bol:
        capture = cv2.VideoCapture(0)
        ret, frame = capture.read()
        
        #load object detector
        path = os.getcwd()+'\haarcascade_frontalface_default.xml'
        face_cascade = cv2.CascadeClassifier(path)
        
        #convert image to grayscale
        imgGray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        
        for (x, y, w, h) in face_cascade.CascadeClassifier(imgGray):
             cv2.rectangle(frame, (x,y), (x+w, y+h), (255,255,255), 3)
             _croppedImage = frame[y:y+h, x:x+w] 
             ROI = _croppedImage

如何获取 _croppedImagex,y,w,h 的值?

_croppedImage 的x & y 值不重要,意义不大。这是因为 _croppedImage 只是从另一张图片中裁剪出的一张图片。

要获得_croppedImage 的w & h,您可以使用.shape() 方法。 w & h 图像的简单分别是图像的宽度和高度。

h, w = _croppedImage[:2]