【问题标题】:Histogram of RGB colored Images without using built-in functions of MATLAB不使用 MATLAB 内置函数的 RGB 彩色图像直方图
【发布时间】:2014-12-18 03:18:16
【问题描述】:

如果不使用任何内置函数,我无法找到一种方法来分别创建每种 RGB 颜色的直方图。我需要创建一个名为 my_hist(image) 的函数,它输出三个不同的数字,每个数字都有单独的 RGB 值。任何数量的帮助将不胜感激

提前致谢!

【问题讨论】:

  • 通过任何内置函数,您的意思是不能使用 imhist、hist、bar 或 stem?
  • 首先要弄清楚如何从矩阵中制作直方图(使用您允许的任何函数)。将 RGB 图像分成三个部分并在每个部分上运行您的个人 hist 函数应该很容易。
  • 我的意思是 imhist 或 hist。

标签: image matlab histogram


【解决方案1】:

如果你不能使用imhist,试试这个:

Im = imread('autumn.tif');
ImHistogram = zeros(3,256);
for jj = 1 : 3
    for ii = 0 : 255
        ImHistogram(jj,ii+1) = sum(sum(Im(:,:,jj) == ii));
    end
end

每一行显示每个RGB的直方图

但是,如果您可以使用 imhist,您可以这样做:

Im = imread('autumn.tif');
ImHistogram = zeros(3,256);
for jj = 1 : 3
    ImHistogram(jj,:) = imhist(Im(:,:,jj));
end

【讨论】:

  • 这是我写的另一个使用accumarray 的解决方案:stackoverflow.com/questions/25830225/…。如果 RGB 元组落在某个颜色范围之间,它会计算线性索引,然后使用accumarray 计算直方图。它将直方图转换为一维数组,因此您可以更轻松地使用相似度度量。
  • 很好的答案@rayryeng。很遗憾你只收到了 1 票。为我 +1!
  • @Benoit_11 谢谢美人!我不认为它有很多曝光,因为标签是 CBIR。仍然感谢您的投票:)
  • Ça fait plaisir!我猜你读了我的个人资料就知道我说法语:)
  • @rayryeng- Oui en effet! Très jolie et très froide avec l'hiver qui 到了!
猜你喜欢
  • 1970-01-01
  • 2014-12-31
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 2015-09-26
相关资源
最近更新 更多