ppts.net
当前位置:首页>>关于简述MATLAB中rgb2hsv命令的功能的资料>>

简述MATLAB中rgb2hsv命令的功能

抽象接口:声明真实对象和代理对象的共同接口 代理对象:代理对象内部包含真实对象的引用,从而可以操作真实对象; 同时,代理对象与真实对象有相同的接口,能在任何时候代替真实对象,而且代理可以在真实对 象前后加入特定的逻辑以实现功能的扩展; 真实对象:代理对象所代表的对象;是我们最终要引用的对象

公式: H参数表示色彩信息,即所处的光谱颜色的位置.该参数用一角度量来表示,红、绿、蓝分别相隔120度.互补色分别相差180度. 纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率.S=0时,只有

Deliberate slowly,

首先说明下,hsv2rgb(H,S,V)的调用有误,正确的调用方法为hsv2rgb(h)(不知道是你抄写错误还是原程序的错误?)当h为m*3的矩阵时,hsv2rgb是把hsv调色板转换成rgb调色板.当h为m*n*3的矩阵时,hsv2rgb是把hsv图像转换成rgb图像.什么

H表示v表示亮度,你可以用一副全白图片转换至HSV,就可以得到v的最大值;再用一副全黑的图像转换至HSV,就可以得到v的最小值.理论上讲V的取值范围是0~1,这是归一化后的结果.但是貌似并不是所有的matlab版本对图像处理的范围都是0~1之间,有的版本是0~255,具体哪几个 版本我就不记得了.

%可以用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矩阵

这样写a(:,:,1)=h;a(:,:,2)=s;a(:,:,3)=v;imshow(a);

既然是对每一个的操作都是一样的,就可以直接对图像的像素矩阵进行操作,效果和你用循环对每一个点操作是一样的.例如:i=imread('xxxx');imshow(i);% 第3步i2 = 255-i;i = fix*i2;i = (1-fix)*i;下面就是内插融合了,不知道你这个具体的意思是什么?是直接相加还是别的操作,就按照算法的原理来写融合的程序就行了.如果不用上面的操作,也可以用循环,对每个像素的r,g,b值进行操作,效果是一样的.

以R、G、B为轴建立空间直角坐标系,则RGB图的每个象素的颜色可以用该三维空间的一个点来表示,而Gray图的每个象素的颜色可以用直线R=G=B上的一个点来表示.于是rgb转gray图的本质就是寻找 一个三维空间到一维空间的映射,最容易想到的就是射影(即过rgb空间的一个点向直线R=G=B做垂线),事实上Matlab也是这样做的,并且有Gray = 0.29900 * R + 0.58700 * G + 0.11400 * B.

specfun工具箱没装可能给你个rgb2hsv源代码 复制下来同名保存就能用了function [h,s,v] = rgb2hsv(r,g,b)switch nargin case 1, if isa(r, 'uint8'), r = double(r) / 255; elseif isa(r, 'uint16') r = double(r) / 65535; end case 3, if isa(r, 'uint8'), r = double(r) /

网站首页 | 网站地图
All rights reserved Powered by www.ppts.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com