我必须执行以下操作 -
1) 找到属于强度级别 0 到强度级别 255 的像素,并将它们存储在 256 个数组中 2) 将像素从一个强度级别重新分配到另一个强度级别,以便所有 256 个级别具有相等的像素。
这是我试图解决的一个更大问题的算法,我被困在这里,因为我不知道如何操作单元数组元素。
我将在单元格数组中有 256 个单元格,我必须比较和重新分配属于单个单元格的元素。请matlab高手帮忙。
我必须执行以下操作 -
1) 找到属于强度级别 0 到强度级别 255 的像素,并将它们存储在 256 个数组中 2) 将像素从一个强度级别重新分配到另一个强度级别,以便所有 256 个级别具有相等的像素。
这是我试图解决的一个更大问题的算法,我被困在这里,因为我不知道如何操作单元数组元素。
我将在单元格数组中有 256 个单元格,我必须比较和重新分配属于单个单元格的元素。请matlab高手帮忙。
算法很简单。从二维图像矩阵创建一维数据数组。数组的每个元素都有四个属性:
现在,根据强度值,从此数据生成直方图,其值位于 256 个唯一箱之一中。这应该很容易。
现在,只需计算每个 bin 中应该有的平均元素数(即:行 * 列 / 256),并将其四舍五入到最接近的整数。有了这个值,您就知道每个直方图“bin”中应该有多少像素。因此,在您的直方图中,您:
现在直方图已均衡化,您可以遍历其内容以重新创建原始 2D 图像。
“优先级”值很重要,因此您不会意外地将像素移动到比需要更多的 bin 中,从而导致高斯甚至脉冲/椒盐噪声。整体算法应该是O(n^2)
,所以在性能方面应该是一半。
最后一件事:如果您使用的排序算法不是一种稳定的排序,它或多或少会随机化哪些相同值的像素跨箱移动,这有助于防止移动具有相同强度的相邻像素簇价值观。