Я разрабатываю систему анализа дефектов, в которой можно найти область дефектного плода. Я нахожусь на начальных этапах своего развития. Я использую opencv и python.
Я использовал следующий код для поиска контуров:
im = cv2.imread('Mango_49_A.jpg')
imgray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(imgray, 127, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im, contours, -1, (0,255,0), 3)
Для нахождения области я использую следующий код:
if len(contours) != 0:
for (i, c) in enumerate(contours):
area = cv2.contourArea(c)
if area < area_of_the_mango1:
print(area)
area_of_the_defected_region1 += area
cv2.drawContours(img, c, -1, (255,255,0), 12)
Результат:
Я хочу рассчитать контур только внутри манго. Результат, который я получаю, вычисляет площадь контура для:
1. Полная граница изображения
2. Манго
3. Дефекты в манго
Так как он вычисляет площадь вышеупомянутых трех областей, площадь дефектной области выше, чем площадь области манго.
Помогите мне рассчитать площадь контура внутри одного манго.