1

我正在使用 MATLAB 进行图像处理。我有两个不同的图像,其直方图如下所示。

图 1:

在此处输入图像描述

和图 2:

在此处输入图像描述

我有多个像这样的图像,唯一的区别(分离)特征是一些有单峰而另一些有两个峰。

换句话说,有些可以设置阈值(以产生良好的结果),而有些则不能。有什么办法可以分开这两个图像吗?在 MATLAB 中有没有这样做的函数或任何有帮助的参考代码?

使用的功能是imhist()

4

1 回答 1

1

如果您的意思是通过“分离”来“区分”,那么是的:您描述的属性称为bimodality,即您有 2 个可以被一个阈值分隔的峰。所以你的问题实际上是“我如何测试潜在的双峰分布?”

以编程方式执行此操作的一种选择是Binning。这不是最稳健但最简单的方法。它可能有效,也可能无效。

内核平滑可能是更强大的解决方案。您基本上可以移动和缩放某个函数(例如高斯)以适应数据。这可以通过 matlab 中的histfit来完成。

由于您现在知道所需的术语,因此您可以自己研究此问题的更多解决方案。请注意,如果您想正确地解决问题,您的问题就不是一件小事。

于 2015-02-10T14:34:37.397 回答