matlab 色彩量化,[MATLAB图像处理] 颜色量化,求高手求解

icon5.gif 颜色量化,求高手求解

function Hist = ColorHistogram3(Image)

[M,N,O] = size(Image);

[h,s,v] = rgb2hsv(Image);

H = h; S = s;V = v;

h = h*360;

%将hsv空间非等间隔量化:

% h量化成8级;

% s量化成3级;

% v量化成3级;

for i = 1:M

for j = 1:N

for k = 1:O

if h(i,j,k)<=20||h(i,j,k)>315

H(i,j,k) = 0;

end

if h(i,j,k)<=40&&h(i,j,k)>20

H(i,j,k) = 1;

end

if h(i,j,k)<=75&&h(i,j,k)>40

H(i,j,k) = 2;

end

if h(i,j,k)<=155&&h(i,j,k)>75

H(i,j,k) = 3;

end

if h(i,j,k)<=190&&h(i,j,k)>155

H(i,j,k) = 4;

end

if h(i,j,k)<=271&&h(i,j,k)>190

H(i,j,k) = 5;

end

if h(i,j,k)<=295&&h(i,j,k)>271

H(i,j) = 6;

end

if h(i,j,k)<=315&&h(i,j,k)>295

H(i,j,k) = 7;

end

end

end

end

for i = 1:M

for j = 1:N

for k = 1:O

if s(i,j,k)<=0.2&&s(i,j,k)>0

S(i,j,k) = 0;

end

if s(i,j,k)<=0.7&&s(i,j,k)>0.2

S(i,j,k) = 1;

end

if s(i,j,k)<=1&&s(i,j,k)>0.7

S(i,j,k) = 2;

end

end

end

end

for i = 1:M

for j = 1:N

for k = 1:O

if v(i,j,k)<=0.2&&v(i,j,k)>0

V(i,j,k) = 0;

end

if v(i,j,k)<=0.7&&v(i,j,k)>0.2

V(i,j,k) = 1;

end

if v(i,j,k)<=1&&v(i,j,k)>0.7

V(i,j,k) = 2;

end

end

end

end

%将三个颜色分量合成为一维特征向量:L = H*Qs*Qv+S*Qv+v;Qs,Qv分别是S和V的量化级数, L取值范围[0,71]

%取Qs = 3; Qv = 3

for i = 1:M

for j = 1:N

for k = 1:O

L(i,j,k) = H(i,j,k)*9+S(i,j,k)*3+V(i,j,k);

end

end

end

%计算L的直方图

for i = 0:71

Hist(i+1) = size(find(L==i),1);

end

Hist = Hist/sum(Hist);

请问错哪,怎么改?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值