Как я могу найти координаты центра объекта группы opencv - PullRequest
0 голосов
/ 28 октября 2019

Я хочу центрировать x, y координаты всех лукумов восторга на этой картинке; зефир на подносе

Я много чего пробовал, но не могу закончить прямоугольники. я получаю это изображение введите описание изображения здесь цель моего проекта цель проекта

import cv2
import numpy as np
img = cv2.imread ('yl4.jpg')  
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)   
#morphology
kernel = np.ones((3,3),np.uint8)  
erosion = cv2.erode(gray,kernel,iterations = 1)
kernel = np.ones((17,17),np.uint8) 
opening = cv2.morphologyEx(gray , cv2.MORPH_OPEN, kernel) 
#get binary
gray_blur = cv2.GaussianBlur(opening, (21,21), 0)
thresh = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV, 11, 1)
kernel = np.ones((3,3),np.uint8)
thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel)
kernel = np.ones((7,7),np.uint8)
thresh = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)
#filter small dotted regions
nlabels, labels, stats, centroids = cv2.connectedComponentsWithStats(thresh , None, None, None, 4, cv2.CV_32S)
sizes = stats[1:, -1] #get CC_STAT_AREA component
img2 = np.zeros((labels.shape), np.uint8)
for i in range(0, nlabels - 1):
    if sizes[i] >= 275:   
        img2[labels == i + 1] = 255
cv2.imshow('frame',img2)
cv2.imshow('gray',gray)
cv2.imwrite("outyl3.jpg", img2)
cv2.waitKey(0)
...