Найдите черные круги/контур для определенной формы на изображении, но обнаружены неправильные контуры PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Найдите черные круги/контур для определенной формы на изображении, но обнаружены неправильные контуры Python

Сообщение Anonymous »

Я использовал findContours() OpenCV, чтобы найти круглые формы черных пикселей. Иногда он выбирает странную область других фигур, окружающую черные пиксели, например. на прилагаемом рисунке
Изображение
(в качестве примера я выделил странный контур, обнаруженный знаком Красного Креста; однако , я хочу обнаружить только задние круги или даже любой круг на изображении, выделенный красными кругами..
Я даже применил пороговое значение, но без изменений..
Я прикрепляю исходное изображение
Изображение
..
Я также могу знать, что контрастность изображения не ок.. но я просто хочу понять, почему поиск контура дает странные контуры.. Есть ли способ не выбирать все контуры?.
Использованный код показан ниже

Код: Выделить всё

import cv2
from matplotlib import pyplot as plt
import numpy as np

# Read image
img = cv2.imread('test_shapes.png')
out=img.copy()
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

# Use fixed threshold to mask black areas
_, thresh = cv2.threshold(gray, 30, 255, cv2.THRESH_BINARY_INV)

# Morphological closing to get whole particles; opening to get rid of noise
img_mop = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE,      cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7, 7)))
img_mop = cv2.morphologyEx(img_mop, cv2.MORPH_OPEN,      cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (15, 15)))
connectivity=4
outout_c=cv2.connectedComponentsWithStats      (img_mop,connectivity,cv2.CV_32S)
num_labels=outout_c[0]
labels=outout_c[1]
stats=outout_c[2]
centroids=outout_c[3]
output_img=np.zeros(gray.shape,dtype='uint8')
for i in range(1,num_labels):
area=stats[i,cv2.CC_STAT_AREA]
if 100

Подробнее здесь: [url]https://stackoverflow.com/questions/79190746/find-black-circles-contour-for-specific-shape-in-an-image-but-wrong-contours-d[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»