【问题标题】:Matlab quantize the hue and saturation of image into binsMatlab将图像的色调和饱和度量化为bin
【发布时间】:2015-12-04 02:45:42
【问题描述】:

有没有办法将图像的色相、饱和度和数值量化到 bin 中?
我想将 Hue 量化为 20 个 bin,将 Saturation 和 Value 量化为 8 个 bin。

之后,我想计算每个 bin 中的 Hue 数量,以及饱和度和值。

【问题讨论】:

  • 你的意思是像histcounts
  • 所有通道使用rgb2hsv后,MATLAB中HSV的动态范围跨越[0,1]。使用它并将每个通道划分为正确数量的 bin,然后按照烧杯的建议使用 histcounts
  • Hi beaker,Hi rayryeng,请问使用[N,edges]后,什么是N,什么是边? N 是特定 bin 中的色调计数数对吗?但是垃圾箱的边缘有什么用呢?

标签: matlab image-processing


【解决方案1】:

您可以使用rgb2hsv 将图像转换为hsv

hsv_im = rgb2hsv( rgb_im );

现在您可以在 HSV 空间中定义一个颜色图来表示您的量化 bin 的中心

dh = 1/20; %// bin for Hue
dsv = 1/8; %// bin for saturation/value
[Q{1:3}] = meshgrid((dh/2):dh:1, (dsv/2):dsv:1, (dsv/2):dsv:1 ); 
Q = [Q{1}(:) Q{2}(:) Q{3}(:)]; %// quant color map

一旦你有了颜色图,你就可以使用rgb2ind根据Q量化你的图像:

q_img = rgb2ind( hsv_im, Q, 'nodither' );

【讨论】:

  • 抱歉,为什么需要将 dh 和 dsv 除以 2? [Q{1:3}] = meshgrid((dh/2):dh:1, (dsv/2):dsv:1, (dsv/2):dsv:1 );
  • @StephanieWong 因为你想要垃圾箱的中心
  • 嗨 Shai,我收到此错误:rgb2ind 中的错误>parse_inputs(第 146 行)如果有(m(:)
猜你喜欢
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 2015-12-24
  • 2011-11-16
  • 1970-01-01
相关资源
最近更新 更多