image-processing - 使用 openCV 检测图案区域

我正在处理一些图像处理问题,我必须检测具有特定图案的区域。除了图案之外,图像中绝对没有其他可用信息——没有颜色、无法进行模板匹配、可怕的光照条件变化、阴影等等。使用 sobel 算子,我得到一个相对一致的图像。

Here is an example

我可以使用什么方法来检测这些交叉区域?图像上有很多其他的东西,所以基于强度的 Blob 检测是没有选择的。

任何帮助或提示都会很棒!谢谢!

最佳答案

一种简单的方法是结合定向线性滤波器,例如 DoG 或 Sobel 内核。如果您事先知道阴影线的方向,则可以创建两个具有这些方向的内核,并且具有足够的伸长率以从实际直线中分出噪声。这为您提供了两个过滤器响应图像。您现在可以在这些响应图像上使用形态膨胀来将响应扩展到线之间的区域。最后,您可以制定一个由两部分组成的标准,要求两个响应都必须高于某个水平,并且它们必须在幅度上相互可比。

如果您事先不知道方向,则存在类似的解决方案,但您需要更大的滤波器组和更复杂的标准(例如,垂直于最大响应方向的响应必须至少是最大响应的 70%) .

https://stackoverflow.com/questions/14601491/

相关文章:

c++ - 负 RGB 值

opencv - 最大颜色数和最大深度

opencv - 在OpenCV中编译

opencv - OpenCV Codebook方法-背景模型

video - 为什么opencv可以打开视频但无法从中检索帧?

image - GUI,可在ubuntu12.04中使用OpenCV查看图像中的值

opencv - "cache"cv Warp透视图

python - 用于在 python 中存储多个图像的高效数据结构

eclipse - fatal error : opencv2/core/core_c. h:没有这

docker - WSL2 无法连接到 Docker 守护程序