如何使用PHP检测图像中的形状?

5
我需要用PHP检测图片中的“星形”图案,同时“星形”图案不固定,下次可能在其他位置。我不能使用任何外部软件或库。我尝试了所有方法,例如边缘检测和灰度处理,但都无济于事。这是图片:enter image description here 主要问题在于我无法清除背景。如果能清除图片背景,则可以按行和列读取所有像素颜色并检测。请帮帮我。这是经过亮度过滤和边缘检测后的图片:enter image description here

你到底尝试了哪些方法? - Jon
如果我使用brightness_filter将亮度增加到220,那么大部分背景都会被清除,请给我一些想法。 - viki
我们要破解别人的验证码吗? - ceejayoz
2个回答

3
针对这张图片,建议进行少量的低通滤波(高斯模糊)以减弱那些线条。这应该能够奏效,因为细线在其转换处具有高频率。然后您可以尝试增加对比度和亮度。
我刚刚进行了一个快速测试,结果如下所示enter image description here 然后只需计算您的结果图像与不同星星图像的互相关。

1
如果星星本身没有被缩放或旋转,那么您应该能够通过干净的星图像与源图像的2D卷积来检测到它。
如果您尝试查找具有不同比例和旋转的星星,则最好使用侵蚀滤波器清理图像,然后使用边缘检测和Hough变换来查找边缘。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接