织梦CMS - 轻松建站从此开始!

罗索

Opencv和人物识别与跟踪

罗索客 发布于 2010-01-14 19:22 点击:次 
如果把RGB原图转成Lab图像,再用cvSplit分到三个单通道上,再用cvMerge函数把这三个单通道图像再合成一个三通道图像,再转成RGB图像显示出来的结果和原图一样。
TAG:

void cvCvtColor( const CvArr* src, CvArr* dst, int code );
src和dst的类型(比特数、通道数、元素类型等)都必须一致。
把RGB图像转到Lab色彩空间时,code=BGR2Lab。src和dst的类型都是CV_8SC3.
void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1,
              CvArr* dst2, CvArr* dst3 );
#define cvCvtPixToPlane cvSplit
该函数分割多通道数组成几个单通道数组或者从数组中提取一个通道。
如果把RGB原图转成Lab图像,再用cvSplit分到三个单通道上,再用cvMerge函数把这三个单通道图像再合成一个三通道图像,再转成RGB图像显示出来的结果和原图一样。
但是如果把原图转成浮点图像再转成Lab图像,再做分割提取单通道的话,可以看到这时候结果就很奇怪了。(这还是一个问题)
R=[0,255]
G=[0,255]
B=[0,255]
Lab在8-bit的情况下
L=a=b=[0,255]
但是在32-bit的情况下
L=[141,716]
a=[-440,472]
b=[-628,305]
者也是一个很奇怪的问题。
 
Filter2D函数不支持8S类型的输入,只支持8U,32U,32S的输入
 
计算颜色梯度Color Gradients是将a*和b*计算出来的边缘的颜色梯度相加。
m_cg(index,x,y) = 0.5 * (cgA(orient,x,y) + cgB(orient,x,y));

(罗索客)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201001/8297.html]
本文出处:网络博客 作者:罗索客
顶一下
(2)
33.3%
踩一下
(4)
66.7%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容