OpenCV中,在图像上覆盖绘制另一幅图圆形图像
来源:互联网 发布:双十一对淘宝的意义 编辑:程序博客网 时间:2024/05/16 08:22
OpenCV中,在图像上绘制另一幅图像通常的作法是用cvSetImageROI + cvCopy,但是这种方式下,上层的那幅图像必须是矩形的。
我在写程序中出现这样一个需求,要在一幅图像中绘制一个足球,上述方法是不能绘出圆形的足球的。
我通过下下思路完成我的想法。
1、构造一个白底的,仅有足球的图像。
2、设置一个Mask,仅在足球的位置上为黑,其它位置为0
3、用cvCopy,把第三个参数设置为每二步设置的Mask即可。
void CFaceChampionshipDlg::DrawFootball(IplImage* img, IplImage *pImgFootball){static CvPoint position = cvPoint( img->width/2, pImgFootball->height/2 );//足球的位置IplImage* pBallOnWhite = cvCreateImage(cvGetSize(img), 8, 3);//白底,仅有足球的画面cvZero(pBallOnWhite);//清零CvRect rect = cvRect( position.x - pImgFootball->width/2 , position.y - pImgFootball->height/2, pImgFootball->width, pImgFootball->height); cvSetImageROI(pBallOnWhite , rect);cvCopy( pImgFootball, pBallOnWhite, 0 );cvResetImageROI( pBallOnWhite );IplImage* pMask = cvCreateImage(cvGetSize(img), 8, 1);//maskcvZero(pMask);//清零cvCircle( pMask, position, pImgFootball->height/2, CV_RGB(255, 255, 255),-1, 8, 0 );//在白图上绘maskcvCopy( pBallOnWhite, img, pMask );cvReleaseImage( &pMask );cvReleaseImage( &pBallOnWhite );}
- OpenCV中,在图像上覆盖绘制另一幅图圆形图像
- 14025将一幅图像叠加在另一幅图像上
- iOS在控制器中绘制圆形图像,二维码
- 如何绘制圆形图像?
- 在wxWidgets中使用OpenCV绘制摄像头图像
- 在wxWidgets中使用OpenCV绘制摄像头图像
- 【OpenCV】通过鼠标在图像中绘制RotatedRect旋转矩形
- opencv在图像上作画
- OPencv把图像二值化后在绘制轮廓
- opencv 绘制图像直方图
- opencv 图像直方图绘制
- cvPutText:在图像上绘制文本字符串
- 在canvas上绘制视频图像
- 在canvas上绘制视频图像2
- openCv笔记--小幅图像覆盖至大幅图像指定位置
- opencv学习笔记 在输入图像上寻找并绘制轮廓
- 在图像上画矩形 opencv
- opencv - 在单通道图像上画图
- GDB调试
- 杭电OJ--1027 Ignatius and the Princess II
- QQ在线代码\阿里旺旺在线代码\MSN在线代码生成\在线代码
- 企业应用架构模式之工作单元模式
- yum命令常用参数详解
- OpenCV中,在图像上覆盖绘制另一幅图圆形图像
- MATLAB的简单debug功能
- poj 3723 Conscription
- C:\WINDOWS\system32\drivers\etc\hosts 文件有什么作用
- poj3608 凸包间最近距离 旋转卡壳
- GB18030编码研究以及GBK、GB18030与Unicode的映射
- 数论题目小结 #by nobody
- 标准模板库STL中Stack参考手册
- js、java、jsp页面三者之间的传值问题,包括ajax的返回参数