在图像处理技术领域,通常分析彩色图像是对RGB模式下各分量进行分析。如果要进行颜色识别,利用RGB各分量的组合进行分析图像的颜色就比较困难了,所以需要将彩色图像从RGB模式下转换到HSV模式(维基百科)下,分析图像颜色,并设计出颜色分布的直方图,并重新转换到RGB模式下进行显示。本算法是在matlab环境下实现的。具体代码如下:
%%================================
clear
clc
close all
Image = imread('Test3.jpg');
[M,N,O] = size(Image);
[h,s,v] = rgb2hsv(Image);
H = h; S = s; V = v;
h = h*360;
%将hsv空间非等间隔量化:
% h量化成16级;
% s量化成4级;
% v量化成4级;
for i = 1:M
for j = 1:N
if h(i,j)<=15||h(i,j)>345
H(i,j) = 0;
end
if h(i,j)<=25&&h(i,j)>15
H(i,j) = 1;
end
if h(i,j)<