我正在使用MATLAB中的图像处理。我有两个不同的图像,其直方图如下所示。
图片1:
和 图2:
我有多个像这样的图像,唯一的区别(分离)特征是有些具有单峰而其他有两个峰。
换句话说,有些可以被阈值化(以产生良好的结果)而有些则不能。有什么方法可以将这两个图像分开吗?在MATLAB中是否有任何功能可以帮助实现这些功能?
使用的函数是imhist()
答案 0 :(得分:1)
如果你的意思是"区分"通过"分开",然后是:您描述的属性称为 bimodality ,即您有2个峰值可以分隔一个阈值。所以你的问题实际上是"我如何测试潜在的双峰分布?"
以编程方式执行此操作的一个选项是Binning。这不是最强大的方法,但最简单。它可能有效,但可能没有。
Kernel Smoothing可能是更强大的解决方案。您基本上移动并缩放某个函数(例如高斯函数)以适合数据。这可以在matlab中使用histfit完成。
您可以自己研究这个问题的更多解决方案,因为您现在知道所需的术语。请注意,如果您想要正确,那么您的问题并不是一件轻而易举的事。