使用openCV硬模式检测墙角

2024-09-29 03:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这张图片(尺寸很抱歉):wall corner

编辑:这只是我房间的一个简单墙角,没什么特别的

我正试图准确地检测拐角,但到目前为止未能检测到。 我尝试使用灰色和双边,蒙版和canny,当然还有一些openCV角点算法的组合,比如Harris,EigenValsAndVecs,MinEigenVal等等。。。 到目前为止,我发现了很多要点,或者根本没有。
有什么想法吗

谢谢


Tags: 算法编辑尺寸图片opencv房间双边灰色
1条回答
网友
1楼 · 发布于 2024-09-29 03:34:23

这似乎相当简单。首先计算梯度大小,它将在三个基本一致的区域(下图中的b)之间找到直线,然后应用类似于Harris角点检测器(或任何其他类型的检测器也可以)的方法来找到直线之间的交点(下图中的c)。我在Harris检测器中对高斯梯度幅度和平滑度使用了4的sigma

output

我在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)

相关问题 更多 >