【问题标题】:Histogram equalization on non-image data非图像数据的直方图均衡化
【发布时间】:2016-04-25 14:16:46
【问题描述】:

我有一个包含负值和正值的矩阵:

我成功地使用这个命令绘制了它的 pdf:

[n,xout] = hist(A(:), 256);
pdf = n/numel(A);
figure; stem(xout, pdf, 'marker', 'none');    

不幸的是,我不能使用unique(A) 代替256,因为它会重复返回我的矩阵的值!

这是 pdf:pdf 如何进行直方图均衡?我使用此命令计算了 pdf 的累积总和:

ind = find(pdf == max(pdf));

cdf1 = cumsum(pdf(ind:end));
cdf2 = cumsum(pdf(ind-1:-1:1));

cdf = [flipud(cdf2); cdf1];

figure; stem(xout, cdf, 'marker', 'none');

结果 cdf 为:cdf

是真的吗?如果是,那之后我该怎么办?最后如何将均衡直方图转换为均衡图像(矩阵)?

任何帮助将不胜感激。

【问题讨论】:

  • 以前版本中的histogramhist 怎么样?

标签: matlab histogram


【解决方案1】:

如果 X 是您的矩阵,您可以这样做:

[y, elements] = hist(X(:), unique(X));
stem(elements, y);

你有你的直方图

【讨论】:

  • 谢谢MingiuX,但为什么是unique(X)?我在参数中使用了 256 而不是 unique(X) 并得到了一个类似于 imhist 的负分布直方图。
  • 使用 256 而不是 unique(X) 您正在创建一个由 256 个元素组成的 elements 向量,因此您将 x 轴划分为 256 个不同的值,并仅对那些您可以的值赋予权重也可以在X 矩阵中找到。相反,使用 unique(X),您将获得一个 elements 向量,该向量仅包含仅考虑一次的 X 矩阵元素(它们是您赋予不同于 0 的权重的元素)。如果这个答案不清楚,请尝试为这两种情况打印您的elements 向量,您就会明白。
  • 好的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 2020-01-27
  • 1970-01-01
  • 2013-11-20
  • 2010-12-23
  • 2013-01-25
  • 1970-01-01
相关资源
最近更新 更多