【问题标题】:How to plot histogram from RGB values of an image in Matlab? [duplicate]如何在 Matlab 中根据图像的 RGB 值绘制直方图? [复制]
【发布时间】:2016-07-22 17:33:08
【问题描述】:

我有一张图像,我提取了特定区域的 rgb 值并将其存储在一个文本文件中 (See Text File)

读取 R 值:

fid = fopen('input.txt');
R = textscan(fid, '%f %*[^\n]');
R = C{:};
fclose(fid);

同样,我可以读取其他值并将其存储在 G & B 中

但是如何将它们全部绘制在同一个直方图上。我需要将它们放在一起,以便从直方图计算最大似然估计量。

感谢您的帮助。

【问题讨论】:

  • 只是一个友好的提示,您可能需要阅读此页面:How-To-Ask Guide,这样您就可以始终确保您的问题易于回答且尽可能清晰。请务必包括您为解决遇到的问题所做的任何努力,以及尝试这些修复时发生的情况。也不要忘记您的代码和任何错误消息!

标签: matlab


【解决方案1】:
x=dlmread('filename',' ')
hist(x)

还要检查

bar3(x)

您将无法绘制多元直方图,因为那将是 4D 图。

要构建 3D 素材箱,您可以制作如下内容:

s=32;%bin separation (power of 2)

r=[0:s:255]

bins=combvec(r,r,r)+s/2 %your bins, size is (256/s)^3    
binval=zeros(length(grid),1)

x=dlmread('filename',' ')
for m = [ 1:length(x)]
  for n = [ 1:length(bins)]
%using infinite norm, note bin off-centering
    if norm(x(m,:)-(grid(n,:)-0.5),inf) < s/2
       binval(n)+=1
       break
    end
  end
end

如果您仍需要 4D 直方图,请尝试使用 scatter3 。标记大小使用binval,RGB 颜色使用C.。

【讨论】:

    猜你喜欢
    • 2018-02-05
    • 2012-04-22
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2018-04-04
    • 2013-01-18
    相关资源
    最近更新 更多