是否有任何方法將圖像的色調,飽和度和值量化爲分箱?
我想將色調量化爲20個分檔,飽和度和值分別爲8個分檔。Matlab將圖像的色調和飽和度量化爲分辨率
之後,我想計算每個分箱中色相的數量,以及飽和度和數值。
是否有任何方法將圖像的色調,飽和度和值量化爲分箱?
我想將色調量化爲20個分檔,飽和度和值分別爲8個分檔。Matlab將圖像的色調和飽和度量化爲分辨率
之後,我想計算每個分箱中色相的數量,以及飽和度和數值。
可以使用rgb2hsv
hsv_im = rgb2hsv(rgb_im);
現在,您可以定義在HSV空間的顏色表,表示您的量化箱中心的圖像轉換成hsv
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? ((dh/2):dh:1,(dsv/2):dsv:1,(dsv/2):dsv:1)。 –
@StephanieWong因爲你想的垃圾箱中心 – Shai
喜曬,我收到此錯誤: 錯誤rgb2ind> parse_inputs(線146) 如果任何(M(:)<0) 錯誤rgb2ind(49行) [RGB,m,dith] = parse_inputs(varargin {:}); SVMTrain錯誤(第66行) quantizedImg = rgb2ind(imgHsv,Q,'nodither'); –
你的意思是像[histcounts](http://www.mathworks.com/help/matlab/ref/histcounts.html)? – beaker
使用'rgb2hsv'後,MATLAB中HSV的動態範圍跨越所有通道的[0,1]'。使用它並將每個通道劃分爲正確數量的分箱,然後使用'countcounts'作爲建議的燒杯。 – rayryeng
嗨,燒杯,嗨雷林,請問在使用[N,邊緣]後,什麼是N和邊是什麼? N是特定倉中的色相計數的數量?但是垃圾箱邊緣的用途是什麼? –