OPENCV对于有alpha通道的透明背景图片的读取和图片叠加
来源:互联网 发布:php 读取cer证书公钥 编辑:程序博客网 时间:2024/05/02 01:29
OPENCV对于有alpha通道的透明背景图片的读取和图片叠加
不过PS是通过在BMP文件格式后追加一个ALPHA数据来实现的,因为BMP本身不支持alpha,所以不能用常规的在程序中直接new bitmap来做。
要先提取追加的这段数据。
Mat inimg = imread("dog.png", CV_LOAD_IMAGE_UNCHANGED); // 读取透明通道// 输出RGBA数值cout << (int)inimg.at<Vec4b>(0,0)[0] << endl << (int)inimg.at<Vec4b>(0,0)[1] << endl << (int)inimg.at<Vec4b>(0,0)[2] << endl << (int)inimg.at<Vec4b>(0,0)[3] << endl;
#include <vector>#include <stdio.h>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int cvAdd4cMat_q(cv::Mat &dst, cv::Mat &scr, double scale);int main(){char str[16];Mat img1 = imread("bk.jpg"), img2 = imread("img.png", -1);Mat img1_t1(img1, cvRect(0, 0, img2.cols, img2.rows));cvAdd4cMat_q(img1_t1,img2,1.0);imshow("final",img1);waitKey(0);return 0;}int cvAdd4cMat_q(cv::Mat &dst, cv::Mat &scr, double scale) { if (dst.channels() != 3 || scr.channels() != 4) { return true; } if (scale < 0.01) return false; std::vector<cv::Mat>scr_channels; std::vector<cv::Mat>dstt_channels; split(scr, scr_channels); split(dst, dstt_channels); CV_Assert(scr_channels.size() == 4 && dstt_channels.size() == 3); if (scale < 1) { scr_channels[3] *= scale; scale = 1; } for (int i = 0; i < 3; i++) { dstt_channels[i] = dstt_channels[i].mul(255.0 / scale - scr_channels[3], scale / 255.0); dstt_channels[i] += scr_channels[i].mul(scr_channels[3], scale / 255.0); } merge(dstt_channels, dst); return true; }
阅读全文
0 0
- 【计算机视觉】OPENCV对于有alpha通道的透明背景图片的读取和图片叠加
- OPENCV对于有alpha通道的透明背景图片的读取和图片叠加
- 图片的alpha 通道
- OpenCV读取图像时Alpha通道的处理
- 对于有背景图片的对话框上的按钮如何透明
- OPENCV 实现png绘制,alpha通道叠加。
- OpenCV如何实现透明(alpha channel)图像的读取和写入
- opencv imread读取alpha通道
- 基于openCV的png读取透明图片
- 使OpenCV支持alpha透明通道
- OpenCv图像叠加时png图片的透明部分无法透明的解决办法
- OpenCv图像叠加时png图片的透明部分无法透明的解决办法
- 【转】OpenCv图像叠加时png图片的透明部分无法透明的解决办法
- 关于Opengl中将24位BMP图片添加一个alpha通道并实现透明的问题
- Unity工程里图片的RGB和Alpha通道的分离,以及显示所有带有Alpha通道贴图的Material
- Unity工程里图片的RGB和Alpha通道的分离,以及显示所有带有Alpha通道贴图的Material
- 前景图片alpha通道值的设置
- 前景图片alpha通道值的设置
- TCP/IP基础知识
- 第十三章:类继承
- cocos2d-x 替换骨骼动画中的某一图片
- 浏览器内核及其分类
- mysql 使用索引和不使用索引的区别
- OPENCV对于有alpha通道的透明背景图片的读取和图片叠加
- left jion中的on和where条件中的区别
- Android中进程间通讯常见的几种方式以及使用场景
- 《Objective-C基础教程》第9章 内存管理
- 简简单单搞掂恼人的Laravel 5安装
- 【Java练习】利用xml做一个简易的通讯录
- illegal attempt to dereference collection(转载的)
- 004_跨平台开发_MUI_操作表(actionsheet)
- 学生成绩转换