2024-09-29 03:34:23 发布
网友
我有这张图片(尺寸很抱歉):
编辑:这只是我房间的一个简单墙角,没什么特别的
我正试图准确地检测拐角,但到目前为止未能检测到。 我尝试使用灰色和双边,蒙版和canny,当然还有一些openCV角点算法的组合,比如Harris,EigenValsAndVecs,MinEigenVal等等。。。 到目前为止,我发现了很多要点,或者根本没有。 有什么想法吗
谢谢
这似乎相当简单。首先计算梯度大小,它将在三个基本一致的区域(下图中的b)之间找到直线,然后应用类似于Harris角点检测器(或任何其他类型的检测器也可以)的方法来找到直线之间的交点(下图中的c)。我在Harris检测器中对高斯梯度幅度和平滑度使用了4的sigma
b
c
我在MATLAB中快速地做了这个测试,因为它是开放的,但是您可以访问我使用的相同的DIPlib算法(披露:我是DIPlib的作者)。它看起来像这样:
import diplib as dip a = dip.ImageRead('corner.jpg') # you can use OpenCV or PIL or whatever else for reading too b = dip.GradientMagnitude(a, sigmas=4) c = dip.HarrisCornerDetector(b, sigmas=4)
这似乎相当简单。首先计算梯度大小,它将在三个基本一致的区域(下图中的
b
)之间找到直线,然后应用类似于Harris角点检测器(或任何其他类型的检测器也可以)的方法来找到直线之间的交点(下图中的c
)。我在Harris检测器中对高斯梯度幅度和平滑度使用了4的sigma我在MATLAB中快速地做了这个测试,因为它是开放的,但是您可以访问我使用的相同的DIPlib算法(披露:我是DIPlib的作者)。它看起来像这样:
相关问题 更多 >
编程相关推荐