首先,进行非均匀量化,H,S,V三通道分别量化为16,4,4级,返回一个向量。量化依据如下表:

function vec = getHsvHist(Image)
[M,N,O] = size(Image);
if O~= 3error('3 components are needed for histogram');
end
[h,s,v] = rgb2hsv(Image);
H = h; S = s; V = v;
h = h*360;%将hsv空间非等间隔量化:
%  h量化成16级;
%  s量化成4级;
%  v量化成4级;
for i = 1:Mfor j = 1:Nif h(i,j)<=15||h(i,j)>345H(i,j) = 0;endif h(i,j)<=25&&h(i,j)>15H(i,j) = 1;endif h(i,j)<=45&&h(i,j)>25H(i,j) = 2;endif h(i,j)<=55&&h(i,j)>45H(i,j) = 3;endif h(i,j)<=80&&h(i,j)>55H(i,j) = 4;endif h(i,j)<=108&&h(i,j)>80H(i,j) = 5;endif h(i,j)<=140&&h(i,j)>108H(i,j) = 6;endif h(i,j)<=165&&h(i,j)>140H(i,j) = 7;endif h(i,j)<=190&&h(i,j)>165H(i,j) = 8;endif h(i,j)<=220&&h(i,j)>190H(i,j) = 9;endif h(i,j)<=255&&h(i,j)>220H(i,j) = 10;endif h(i,j)<=275&&h(i,j)>255H(i,j) = 11;endif h(i,j)<=290&&h(i,j)>275H(i,j) = 12;endif h(i,j)<=316&&h(i,j)>290H(i,j) = 13;endif h(i,j)<=330&&h(i,j)>316H(i,j) = 14;endif h(i,j)<=345&&h(i,j)>330H(i,j) = 15;endend
end
for i = 1:Mfor j = 1:Nif s(i,j)<=0.15&&s(i,j)>0S(i,j) = 0;endif s(i,j)<=0.4&&s(i,j)>0.15S(i,j) = 1;endif s(i,j)<=0.75&&s(i,j)>0.4S(i,j) = 2;endif s(i,j)<=1&&s(i,j)>0.75S(i,j) = 3;endend
end
for i = 1:Mfor j = 1:Nif v(i,j)<=0.15&&v(i,j)>0V(i,j) = 0;endif v(i,j)<=0.4&&v(i,j)>0.15V(i,j) = 1;endif v(i,j)<=0.75&&v(i,j)>0.4V(i,j) = 2;endif v(i,j)<=1&&v(i,j)>0.75V(i,j) = 3;endend
end%将三个颜色分量合成为一维特征向量:L = H*Qs*Qv+S*Qv+v;Qs,Qv分别是S和V的量化级数, L取值范围[0,255]
%取Qs = 4; Qv = 4
L=zeros(M,N);
for  i = 1:Mfor j = 1:NL(i,j) = H(i,j)*16+S(i,j)*4+V(i,j);end
end
%计算L的直方图
Hist=zeros(1,256);
for i = 0:255Hist(i+1) = size(find(L==i),1);
end
vec=Hist';

接着,进行均匀量化,H,S,V三通道分别量化为16,4,4级,返回一个向量。

function  vec= hsvHist(Image)
[M,N,O] = size(Image);
if O~= 3error('3 components are needed for histogram');
end
H_BITS = 4; S_BITS =2; V_BITS = 2;
hsv = uint8(255*rgb2hsv(Image));
%均匀量化
% bitshift(24,-3) 表示24除以2的3次方
H=bitshift(hsv(:,:,1),-(8-H_BITS));
S=bitshift(hsv(:,:,2),-(8-S_BITS));
V=bitshift(hsv(:,:,3),-(8-V_BITS));%%
%先进行合成,然后再统计
L=zeros(M,N);
for i=1:Mfor j=1:NL(i,j)=16*H(i,j)+4*S(i,j)+V(i,j);end
end
%计算L的直方图
Hist=zeros(1,256);
for i = 0:255Hist(i+1) = size(find(L==i),1);
end
vec=Hist';
end

以lena图像进行比较:

clc;clear;close all;
rgb=imread('d:/pic/lena.jpg');
h1=getHsvHist(rgb);
h2=hsvHist(rgb);
figure,
subplot(211),bar(h1),title('hsv非均匀量化直方图');
subplot(212),bar(h2),title('hsv均匀量化直方图');

在matlab中对hsv进行均匀量化和非均匀量化相关推荐

  1. 通信原理day7:第三章:抽样;均匀量化;非均匀量化;A律;增量(ΔM)调制

    模拟信号的数字化 1.抽样定理 1.1低通信号的抽样定理 1.2带通信号的抽样定理 2.量化 2.1 均匀量化 2.1.1.抽样频率,传输速率 2.1.2.量化位数,量化电平,量化间隔 2.1.3.量 ...

  2. matlab均值量化函数_在matlab中理解抽样量化的概念:均匀量化的实现

    还是一样,先贴程序 %sampling and quantisation clc; clear; %sampling A = 1; % sinusoid's amplitude f = 2;% fre ...

  3. MATLAB中颜色模型介绍级各模型之间转换(RGB、HSV、NTSC、YCbCr、HSI)

    1.颜色模型定义 2.各颜色模型简介 3.颜色模型的转换 一.颜色模型定义 颜色模型:某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色.例如,RGB颜色模型就是三维直角坐标颜色系统的一个 ...

  4. matlab中help所有函数功能的英文翻译

    doc funname 在帮助浏览器中打开帮助文档 help funname 在命令窗口打开帮助文档 helpbrowser 直接打开帮助浏览器 lookfor funname 搜索某个关键字相关函数 ...

  5. matlab中的图像类型

    MATLAB中的图像类型 在MATLAB中数组是最基本的数据结构,大部分图像用二维 数组即矩阵表示,矩阵中的一个元素对应一个像素.例如,一个由500行600列不同颜色点组成的图像可以用500*600的 ...

  6. Matlab中图像函数大全

    Matlab中图像函数大全 图像增强 1. 直方图均衡化的 Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n)         imhist ...

  7. matlab中bitget函数用法_Matlab函数大全

    目录 1.时间日期函数................................ ................................ ....................... ...

  8. MATLAB中的颜色控制

    1.色图颜色调配命令 在MATLAB中,控制及实现颜色调配的主要命令为colormap,它的使用格式如下: 调用格式                                         说 ...

  9. matlab让一个点变为指定颜色,MATLAB中的颜色控制

    1.色图颜色调配命令 在MATLAB中,控制及实现颜色调配的主要命令为colormap,它的使用格式如下: 调用格式                                         说 ...

最新文章

  1. 使用流程引擎整体解决方案
  2. DL之CNN优化技术:学习卷积神经网络CNN的优化、实践经验(练习调参)、从代码深刻认知CNN架构之练习技巧
  3. BAT解密:互联网技术发展之路(5)- 开发层技术剖析
  4. 重温Javascript(四)-函数
  5. redis缓存雪崩和缓存穿透
  6. 高等数学下-赵立军-北京大学出版社-题解-练习11.2
  7. 比较高效的表格行背景变色及选定高亮JS
  8. plsql developer怎么使用 plsql developer使用教程
  9. linux误删文件恢复的方法 ----debugfs
  10. 医院信息管理系统(Python与MySQL数据库的连接与相关增删改查操作)
  11. 学习正则表达式 - 匹配 Unicode 和其他字符
  12. 4G图传移动视频取证-可视安全生产监管-常见问题解答FAQ
  13. diskman 恢复分区表找到数据
  14. 用Python制作高逼格数学动画manim
  15. 我的天空 我的未来 我的梦
  16. Charles-解决unknown的问题
  17. 还在每天standup会议吗?是时候尝试这个了。。。
  18. DockerHub使用
  19. android+so+upx,Android NDK UPX加固
  20. Shimeji开源桌宠代码学习(3)

热门文章

  1. C语言基础教程篇之环境如何设置
  2. 什么是物联网?在生活中有何体现?
  3. 开课吧Java课堂:什么是线程优先级?
  4. Java基础:什么是返回对象
  5. UI设计入门:解析设计标注规范和图标规范
  6. 工业级大数据接入MQ消息发送异常性及最终一致性解决方案-DW商业环境实战
  7. React学习笔记2017-12-31
  8. 【278天】每日项目总结系列016(2017.11.10)
  9. 高通芯片中的MDP模块[msm7x27]
  10. 关于使用DFS,BFS的一些思考总结