Варианты обнаружения эллипса в изображении с перекрытием существующего эллипса - PullRequest
0 голосов
/ 09 мая 2019

Я хочу распознать конкретную форму на изображении (в данном случае - эллипс), которой мне присваивается форма с координатами в декартовых или полярных координатах или точное изображение формы. В настоящее время я работаю с изображением, которое я хочу сопоставить на своем изображении.

Я относительно новичок в Python, и в настоящее время я учусь с этим проектом, это я написал сам. Сейчас я пытаюсь выяснить, как определить правильный вариант решения.

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

Я попробовал какой-то Canny, а затем поработал с findContours, это дало мне неприятные результаты из-за большого количества шума и других многоугольников на картинке.

Я попробовал это с помощью метода ORB, но это также не дало результатов, на которые я надеялся.

Я попробовал это после этого с детектором BLOB-объектов, никаких хороших результатов ..

import cv2
import numpy as np
import imutils
from matplotlib import pyplot as plt
from pylab import rcParams

rcParams['figure.figsize'] = 18, 18

    #Read Image for matching in GRAY
match = cv2.imread('/home/robin/Bilder/match3.png', 0)
    #Read Image to match in GRAY
orig = cv2.imread('/home/robin/Bilder/IMG_2848.JPG', 0) #Image for Searching

thresh2 = cv2.adaptiveThreshold(match, 255, cv2.ADAPTIVE_THRESH_MEAN_C, 
                    cv2.THRESH_BINARY, 7, 5)
resized = imutils.resize(orig, width=1000)
ratio = resized.shape[0] / float(resized.shape[0])

blur = cv2.GaussianBlur(resized, (5, 5), 0)

bilat = cv2.bilateralFilter(blur, 10, 5, 1)

deno = cv2.fastNlMeansDenoising(bilat,None,18,5,10)

thresh = cv2.adaptiveThreshold(deno, 255, cv2.ADAPTIVE_THRESH_MEAN_C, 
                    cv2.THRESH_BINARY, 7, 5)

plt.subplot(121), plt.imshow(thresh, cmap = 'gray')

@ HansHirse, извините, я совсем забыл добавить картинки !!

https://i.stack.imgur.com/7VPEW.jpg https://i.stack.imgur.com/tHODZ.jpg https://i.stack.imgur.com/fWYRI.png https://i.stack.imgur.com/ob98O.jpg

Я пытаюсь обнаружить на снимке камеры (Pic1) эллипс, откуда у меня есть форма в виде малой и большой оси (здесь 70 мм и 60 мм). По сути, я хочу передать программе форму (круг, эллипс и т. Д.), И она должна пометить эту точную форму на исходной картинке (с поворотом и переводом).

...