Почему значение CC_STAT_AREA больше, чем minAreaRectanlge.width * height? - PullRequest
0 голосов
/ 09 июля 2019

Привет, у меня есть одно сомнение в обновлении CC_STAT_AREA и minAreaRect из контура в opencv. CC_STAT_AREA из подключенных компонентов обеспечивает область соединенных компонентов BLOB-объектов в изображении. Когда мы берем контур одного и того же большого объекта, cv2.minAreaRect предоставляет мне ширину и высоту ограниченного прямоугольника вокруг большого объекта. Согласно тому, что я понял, как CC_STAT_AREA, количество белых пикселей в BLOB-объекте должно быть меньше minArearect (ширина * высота). Но для нескольких капель я получил противоречивый ответ. Кто-нибудь может объяснить, почему это так?

import cv2
import numpy as np
img=cv2.imread("E:/new.png",cv2.IMREAD_GRAYSCALE)

cv2.imshow("Original",img)image1,contours,hier=cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
image1,contours,hier=cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
nb_components, output, stats, centroids = cv2.connectedComponentsWithStats(img,8,cv2.CV_32S)
statcontours=[]
for cnt in contours:
    rect = cv2.minAreaRect(cnt)
    (x, y), (w, h), angle = rect
    statcontours.append(rect)
    cv2.drawContours(rgb_img,[box],0,(0,0,255),2)
cv2.imwrite("bbimage21",img)

Площадь подключенных компонентов и MinAreaRect

Входное изображение

...