OpenCV绘制半透明效果的代码

简介: OpenCV绘制半透明效果的代码

与网上大多数不同的是,本博贴出的代码,不仅经过测试运行,还检查结果是否正确。以这里代码为例,与网上不同的是:


专门区分了源图的透明度和子图的透明度。因为源图的透明度不为1,整体画面就会变暗。

专门对子图进行了清理动作。否则转成图片之后,会发现图片的顶部总是会有乱纹。

 代码如下:  

//为什么要区分?因为ALPHA_SOURCE!=1,那么画面变灰,效果不如人意。具体可以自己体验
#define  ALPHA_SOURCE       1
#define  ALPHA_POLYGON      0.5
void AlphaImage(IplImage* pImage, int x, int y, int width, int height)
{
    CvScalar color;
    color.val[0] = 0xFF;
    color.val[1] = 0;
    color.val[2] = 0;
    color.val[3] = 0;
    IplImage * pTemp=cvCreateImage(cvSize(width,height), pImage->depth, pImage->nChannels);
    //把图设置为空。
    cvSet(pTemp, CV_RGB(0,0,0), NULL);
    //根据需要,是否要填充
    cvRectangle(pTemp, cvPoint(0,0), cvPoint(width,height), color, -1);
    cvSetImageROI(pImage, cvRect(x, y, width, height));
    //注意两个Alpha的不同。
    cvAddWeighted(pImage, ALPHA_SOURCE, pTemp, ALPHA_POLYGON, 0.0, pImage);
    cvResetImageROI(pImage);
    //释放内存
    cvReleaseImage(&pTemp);
}
//由一个char*转换为IplImage
//SIZE_RGB=3
int create_image(const char* pRgbData, const int width, const int height)
{
    CvSize size;
    size.width = width;
    size.height= height;
    IplImage* iplImage = cvCreateImageHeader(size, IPL_DEPTH_8U, SIZE_RGB);
    //注意,这里只能是size.width,不能再加上height
    cvSetData(iplImage, pRgbData, size.width*SIZE_RGB);
    AlphaImage(iplImage...);
}
目录
相关文章
|
7月前
|
传感器 C++ 计算机视觉
【opencv3】详述PnP测距完整流程(附C++代码)
【opencv3】详述PnP测距完整流程(附C++代码)
|
计算机视觉 Python
最快速度写出一个识别效果——OpenCV模板匹配(含代码)
最快速度写出一个识别效果——OpenCV模板匹配(含代码)
486 0
|
7月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
6月前
|
算法 开发工具 计算机视觉
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
92 1
|
4月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
7月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
4月前
|
计算机视觉 Python
opencv在pycharm不能自动补全代码
opencv在pycharm不能自动补全代码
31 0
|
6月前
|
监控 安全 计算机视觉
实战 | 18行代码轻松实现人脸实时检测【附完整代码与源码详解】Opencv、人脸检测
实战 | 18行代码轻松实现人脸实时检测【附完整代码与源码详解】Opencv、人脸检测
|
6月前
|
并行计算 IDE 开发工具
【竹篮打水】OpenCV4.x 中新增并行代码执行演示
【竹篮打水】OpenCV4.x 中新增并行代码执行演示
58 0
|
7月前
|
算法 API 计算机视觉
基于opencv的大米计数统计(详细处理流程+代码)
基于opencv的大米计数统计(详细处理流程+代码)
基于opencv的大米计数统计(详细处理流程+代码)