用于检测图像中与现有椭圆重叠的椭圆的选项

时间:2019-05-09 07:09:10

标签: python numpy opencv ellipse

我想识别图像中的特定形状(在这种情况下为椭圆形),该形状具有笛卡尔坐标或极坐标中的坐标,或者该形状的精确图像。我目前正在处理要在图片中匹配的图像。

我对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)中检测到一个椭圆,在该椭圆中我的形状是短轴和长轴(此处为70mm和60mm)。基本上,我想为程序提供某种形式(圆形,椭圆形等),并且应该在原始图片中标记出这种确切形式(带有旋转和平移)。

0 个答案:

没有答案