最近实验室的工作上碰到的两个小问题,记录一下。
1.yuv颜色空间的GMM
之前用过很多次的在RGB上的混合高斯模型,最近需要对一个yuv序列使用GMM方法建背景。因为有现成的代码,所以第一个出现在脑海中的想法就是用公式把yuv转成RGB之后,完了再转回yuv。后来再回头一想,完全不必要如此,因为GMM完全是基于时间轴上的统计方法,他关注的只是某个点位置上的像素点的值,然后把该值在时间上连成一串之后进行统计,而不关注该值是RGB中的R、G还是B,抑或是yuv中的y、u或者v。有了这个理解之后,这个问题解决起来就简单多了,直接把yuv拷贝到IPLIMAGE中的imagedata字段中,然后在大循环的时候修改一下循环长度就可以了。
任何一个方法、算法,不彻底的理解透,运用起来都不会那么得心应手。
2.char和unsigned char
最近做的一个小项目调了一个下午,其实代码量很小,却调了很久,找到问题之后恨不得扇自己一巴掌。原来是在传参数的时候没有进行强制类型转换,使得像素值出现了负值的情况。特此记录。