我正在 MATLAB 中进行图像处理。我有两张不同的图像,其直方图如下所示。
图1:
和 图片 2:
我有多个像这样的图像,唯一的区别(分离)特征是有些有单峰,有些有两个峰。
换句话说,有些可以设置阈值(以产生良好的结果),而另一些则不能。有什么办法可以将两个图像分开吗? MATLAB 中是否有可以执行此操作的函数或任何有帮助的参考代码?
使用的函数是
imhist()
如果您的意思是“区分”为“分离”,那么是的:您描述的属性称为“双峰性”,即您有 2 个可由一个阈值分隔的峰值。所以你的问题实际上是 “我如何测试潜在的双峰分布?” 以编程方式执行此操作的一个选项是
Binning。这不是最可靠的方法,但却是最简单的方法。它可能有效,也可能无效。
内核平滑可能是更强大的解决方案。您基本上可以移动和缩放某个函数(例如高斯)以适应数据。这可以通过 matlab 中的 histfit 来完成。 这个问题有更多的解决方案,您可以自己研究,因为您现在知道所需的术语。但请注意,如果您想
正确地做到这一点,那么您的问题并不是一个小问题。