Поиск координат объекта на отфильтрованной картинке

Есть отфильтрованное изображение без лишнего шума. Возникли проблемы с нахождением объекта на картинке даже на черном фоне. Надо найти скорее не координаты объекта, а координаты области, в которой преобладает НЕ черный цвет. Надеюсь на вашу помощь введите сюда описание изображения

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Assur

Рисунок до обработки Python с OpenCV

Простая программа Python с OpenCV по нахождению вершин полигонов для этого рисунка:

# import the required library 
import numpy as np 
import cv2 
from matplotlib import pyplot as plt 


# read the image 
img = cv2.imread('corner1.png') 

# convert image to gray scale image 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

# detect corners with the goodFeaturesToTrack function. 
corners = cv2.goodFeaturesToTrack(gray, 27, 0.01, 10) 
corners = np.int0(corners) 

# we iterate through each corner,  
# making a circle at each point that we think is a corner. 
for i in corners: 
    x, y = i.ravel() 
    cv2.circle(img, (x, y), 3, 255, -1) 

plt.imshow(img), plt.show() 
→ Ссылка
Автор решения: Alex Alex
import cv2

im=cv2.imread('f0tiH.png')
im_gray=cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
bw=cv2.threshold(im_gray, 19, 255, cv2.THRESH_BINARY)[1]
retval, labels, stats, centroids = cv2.connectedComponentsWithStats(bw, connectivity=8)
x,y,w,h,s=stats[1,:]
cv2.rectangle(im, (x, y), ( x+w, y+h),(0, 0, 255), 1)
cv2.imwrite('name.png', im)
  1. Бинаризируем.
  2. Находим связную компоненту (одна).
  3. Считываем ее координаты и выделяем объект.

введите сюда описание изображения

→ Ссылка