11.19 生活就像巧克力,你永远不知道下一颗的口味

    最近在研究一个手势识别的程序,程序的第一步是肤色检测,由于我所研究的代码定义的图像的类型是IplImage类型,而我更喜欢使用Mat类型,所以我决定自己写一个肤色检测的程序,用Mat类型的图像。然而就是这样一个简单的肤色检测的程序,我写了将近两天。今天研究了很长时间,发现一些函数的形参类型都是Mat类型,在各种报错之后,我原本准备放弃。然而一不小心搜到了一个能形参是mat类型的可以分割多通道图像的函数,于是又开始写了起来,可是写着写着我发现我连打开摄像头的程序都调不出来了。找到各种资料对比之后,我才终于调通了打开摄像头的图像。这虽然是一个很小很小的程序,但是今天下午我还是发现了一些问题,积累了一些经验。现在记录下来。


1.在遇到形参与实参类型不匹配时,要想到强制类型转换。比如今天遇到的 CvArr*类型转换成Mat 类型需要用  Mat image; CvArr * s=(Cvarr *)ℑ

2.一些作用相同,但是形参类型不同的函数:

                                                       Mat                                 IplImage

图像的初始化                    M.create(size,type);               M= cvCreateImage(size,Depth,channals);

多通道图像的分离           split(src,vector<Mat>)          cvSplit(img_YCrCb,Y_channel,Cr_channel,Cb_channel,0);(原图,各个通道的图像)

                                         (其中vector中盛放着各个通道的图像,可以用遍历的方法(at函数)来读取各个通道的图像)


3.如果出现摄像头打不开等问题,可能是没写waitkey(),或者waitkey()写的出问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值