① 询问Matlab中hsv颜色表示的问题
rgb2hsv
功能:
转化RGB值为HSV颜色空间。
语法:
hsvmap = rgb2hsv(rgbmap)
HSV = rgb2hsv(RGB)
相关命令:
hsv2rgb, rgbplot
HSV解释
HSV色彩模型从CIE三维颜色空间演变而来,它采用的是用户直观的色彩描述方法
,它跟孟塞尔显色系统的 HVC 球型色立体较接近。(如图HSV 色彩六棱锥)只不
过HSV色彩模型是一个倒立的六菱锥,只相当于孟塞尔球型色立体的一半(南半
球),所以不含黑色的纯净颜色都处于六菱锥顶面的一个色平面上。在HSV六菱
锥色彩模型中,色相(H)处于平行于六菱锥顶面的色平面上,它们围绕中心轴V
旋转和变化,红、黄、绿、青、蓝、品红六个标准色分别相隔60度。色彩明度(
B)沿六菱锥中心轴V从上至下变化,中心轴顶端呈白色(V = 1),底端呈黑色
(V = 0),它们表示无彩色系的灰度颜色。色彩饱和度(S)沿水平方向变化,
越接近六菱锥中心轴的色彩,其饱和度越低,六边形正中心的色彩饱和度为零(
S = 0),与最高明度的V = 1相重合,最高饱和度的颜色则处于六边形外框的边
缘线上(S = 1)。
(1) 色相、饱和度与六棱锥色平面(H和 S)
色平面(H、S)的基础是CIE色度图的x、y色平面
(2) 明度与六棱锥中轴色(v)
色明度(V)的基础是 CIE三维颜色空间的亮度因素Y。
② Matlab中对HSV空间进行二值化其H.S.V分量阈值怎样与灰度值对应
MATLAB中hsv颜色空间h分量的范围是 [0,1),不包括1。 其中, h=0的时候,就相当于0度; h=0.5的时候,就相当于180度; h=1的时候,就相当于360度(虽然不能取这个值)。
③ 关于matlab中hsv2rgb的用法,给详细解释下,下面用hsv2rgb之前那些数据处理有什么用啊
首先说明下,hsv2rgb(H,S,V)的调用有误,正确的调用方法为hsv2rgb(h)
(不知道是你抄写错误还是原程序的错误?)
当h为m*3的矩阵时,hsv2rgb是把hsv调色板转换成rgb调色板。
当h为m*n*3的矩阵时,hsv2rgb是把hsv图像转换成rgb图像。
什么是调色板呢?调色板是一个存贮各种颜色值的列表。
这样索引图像只需存贮列表中的索引就可以了,具体的颜色值只需要到颜色列表中去查找。
但是表示颜色的方法有很多种。
最常见的RGB,第一个分量表示红色,第二个绿色,第三个蓝色。
RGB虽然方便计算机处理,但对人并不直观
HSV则对人很直观,H表示颜色,S表示饱和度(可以理解为纯度),V为亮度。例如“有点浓的暗红色”对应成HSV即“H为红色,S比较高(纯),V比较低(暗)”。
H,S,V三个变量的取值均在0和1之间。
程序解释如下:
V=V-min(V(:));
V=V/max(V(:));
V=.25+0.75*V;
是将V的值映射到[0.25,1]之间
M=M-min(M(:));
M=M/max(M(:));
是将M映射到[0,1]之间
H为0表示底色为红色。
开始提到函数的调用是错误的,那么正确的调用是什么呢?我的理解应该如下:
h(:,:,1)=H(:,:);
h(:,:,2)=S(:,:);
h(:,:,3)=V(:,:);
RGB=hsv2rgb(h);
figure,imshow(RGB,[]);
特别地,如果令h(:,:,2)=1,h(:,:,3)=1则图像是纯深红色。
④ matlab图像处理:怎样提取HSV图像的H分量怎样判断一副图像的颜色
你提取H分量的代码没错,在0-1之间是因为已经归一化了
⑤ matlab中hsv颜色空间的h分量值范围是0到1吗
MATLAB中hsv颜色空间h分量的范围是 [0,1),不包括1。
其中,
h=0的时候,就相当于0度;
h=0.5的时候,就相当于180度;
h=1的时候,就相当于360度(虽然不能取这个值)。
MATLAB[1]是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
⑥ 如何用matlab绘制HSV颜色空间如下图
clear;clc;
h=linspace(0,1,19);
s=linspace(0,1,9);
v=linspace(0,1,11);
h=h([1:end-3])*2*pi;
[H,S]=meshgrid(h,s);
surf(S.*cos(H),S.*sin(H),H-H+1,hsv2rgb(cat(3,H/2/pi,S,H-H+1)));
holdon
[H,V]=meshgrid(h,v);
surf(V.*cos(H),V.*sin(H),V,hsv2rgb(cat(3,H/2/pi,H-H+1,V)));
[S,V]=meshgrid(s,v);
surf(S.*V.*cos(h(1)),S.*V.*sin(h(1)),V,hsv2rgb(cat(3,S-S+h(1)/2/pi,S,V)));
surf(S.*V.*cos(h(end)),S.*V.*sin(h(end)),V,hsv2rgb(cat(3,S-S+h(end)/2/pi,S,V)));
axisoffequal
view(60,15)
camzoom(2)
⑦ matlab hsv空间筛选其中符合h,s,v符合条件的元素并计算其饱和度均值
%可以用rgb2hsv函数来转换例如:
t=imread('a.bmp');
HSV=rgb2hsv(t);
H=HSV(:,:,1);%提取64×64×3维矩阵中的64×64×1矩阵
S=HSV(:,:,2);%提取64×64×3维矩阵中的64×64×2矩阵
V=HSV(:,:,3);%提取64×64×3维矩阵中的64×64×3矩阵
⑧ 在matlab中用rgb2hsv函数将RGB图像转化为hsv模型后,h,s,v的值域应该为多少,为何我得到的v值达到200
H表示v表示亮度,你可以用一副全白图片转换至HSV,就可以得到v的最大值;再用一副全黑的图像转换至HSV,就可以得到v的最小值。理论上讲V的取值范围是0~1,这是归一化后的结果。但是貌似并不是所有的matlab版本对图像处理的范围都是0~1之间,有的版本是0~255,具体哪几个 版本我就不记得了。
⑨ 求助:Matlab曲线线型和颜色设置问题:如何过滤掉一条曲线的一部分
(matlab)plot画图的颜色线型
y 黄色 · 点线
m 粉红 ○ 圈线
c 亮蓝 × ×线
r 大红 + +字线
g 绿色 - 实线
b 蓝色 * 星形线
w 白色 : 虚线
k 黑色 -.
-- 点划线
matlab6.1线形:
[ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ]
square 正方形
diamond 菱形
pentagram 五角星
hexagram 六角星
用法
grid 打开网格线 -- 虚线
hold on 命令用于在已画好的图形上添加新的图形
1 x=0:0.001:10; % 0到10的1000个点(每隔0.001画一个点)的x座标
y=sin(x); % 对应的y座标
plot(x,y); % 绘图
注:matlab画图实际上就是描点连线,因此如果点取得不密,画出来就成了折线图,请试验之
2 Y=sin(10*x);
plot(x,y,'r:',x,Y,'b') % 同时画两个函数
3 若要改变颜色,在座标对后面加上相关字串即可:
x=0:0.01:10;
plot(x,sin(x),'r')
4 若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:
plot(x,sin(x),'r*')
5 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围
axis([0,6,-1.5,1])
6 MATLAB也可对图形加上各种注解与处理:(见上表)
xlabel('x轴'); % x轴注解
ylabel('y轴'); % y轴注解
title('余弦函数'); % 图形标题
legend('y = cos(x)'); % 图形注解
gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置
grid on; % 显示格线
7画椭圆
a = [0:pi/50:2*pi]'; %角度
X = cos(a)*3; %参数方程
Y = sin(a)*2;
plot(X,Y);
xlabel('x'), ylabel('y');
title('椭圆')
8 绘制函数 在0 ≤ x ≤ 1时的曲线。
x=0:0.1:1
y=x.*exp(-x) %为什么用点运算?若不用会怎样
plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')
9 画出衰减振荡曲线 与它的包络线 及 。t 的取值范围是[0, 4π] 。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b') % -r表示红色实线,:b表示蓝色点线,看上表
grid
10 在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如
x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
u=2*sin(x).*cos(x); v=sin(x)./cos(x);
subplot(2,2,1),plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
subplot(2,2,2),plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
subplot(2,2,3),plot(x,u),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4),plot(x,v),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
⑩ matlab的GUI中如何统计一个区域颜色的H值(HSV模型)
MATLAB中hsv颜色空间h分量的范围是
[0,1),不包括1.
其中,
h=0的时候,就相当于0度;
h=0.5的时候,就相当于180度;
h=1的时候,就相当于360度(虽然不能取这个值).