matlab 如何在填充双曲线时消除图像噪声(水平线)?请求的想法:)

o2g1uqev  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(141)

我有一个图像,如‘1’中所示。我应用了黑森过滤器来得到结果‘2’。我在MatLab中应用了标准过滤器(Stdfilt),得到了如‘3’所示的结果。
我希望将这两个结果合并到一个图像中,以便:

  • 删除水平线(在我的情况下为噪波)。
  • 双曲线区被填补

我怎么能得到这样的结果呢?
原件(1):

黑斯人(2):

标准过滤(3):

最后两个没有加价:

yhived7q

yhived7q1#

您可以从将图像二值化开始。我推荐OpenCV otsu Threshold。如果存在渐变,就很难解决这个问题。图像二值化后,您需要修复抛物线和水平线之间的桥接。我推荐形态侵 eclipse ,但我仍在我自己的项目中试验这一点。之后,可以使用分水岭或DBSCAN使用给定的标记或颜色整体填充每个区域。然后,您可以按像素数过滤出水平线,因为它们将比一条抛物线大得多。如果侵 eclipse +DBSCAN运行不可靠,您可以查看OpenCV的connectedComponents函数。
请参见:

https://iq.opengenus.org/connected-component-labeling/
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
https://docs.opencv.org/4.x/d3/db4/tutorial_py_watershed.html

相关问题