OpenCV中使用面具等非矩形图像

    在《OpenCV实例精解》一书中,有一个识别人脸然后加上面具的例子,刚开始看的时候就有一个疑惑,面具的图像是矩形的,糊到脸上要怎么使用掩膜呢。后来发现例子里面用的方法很巧妙,这里重新把面具处理部分的代码总结一下:


    Mat faceMaskSmall = imread("facemask.jpg");    if ( !faceMaskSmall.data ){cerr << "Error loading mask image. Exiting!" << endl;}imshow("faceMaskSmall", faceMaskSmall);Mat grayMaskSmall, grayMaskSmallThresh, grayMaskSmallThreshInv;Mat maskedFace, maskedFrame;cvtColor(faceMaskSmall, grayMaskSmall, CV_BGR2GRAY);//面具图像中大于200的像素设为0,也就是面具部分为非零,周围为零threshold(grayMaskSmall, grayMaskSmallThresh, 250, 255, CV_THRESH_BINARY_INV);imshow("grayMaskSmallThresh", grayMaskSmallThresh);//把src里面每一个元素都倒过来,放到dst里面,0变255ÿ


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部