题目:在opencv中生成透明图形的方法
2017-04-23 17:26
176 查看
题目:在opencv中生成透明图形的方法
程序:
程序:
#include <vector> #include <stdio.h> #include<opencv2/opencv.hpp> using namespace cv; using namespace std; // 描述:创建带alpha通道的Mat void createAlphaMat(Mat &mat) { for (int i = 0; i < mat.rows; ++i) { for (int j = 0; j < mat.cols; ++j) { Vec4b&rgba = mat.at<Vec4b>(i, j); rgba[0] = UCHAR_MAX; rgba[1] = saturate_cast<uchar>((float(mat.cols - j)) / ((float)mat.cols) *UCHAR_MAX); rgba[2] = saturate_cast<uchar>((float(mat.rows - i)) / ((float)mat.rows) *UCHAR_MAX); rgba[3] = saturate_cast<uchar>(0.5 * (rgba[1] + rgba[2])); } } } int main() { //创建带alpha通道的Mat Mat mat(480, 640, CV_8UC4); createAlphaMat(mat); vector<int>compression_params; compression_params.push_back(IMWRITE_PNG_COMPRESSION); compression_params.push_back(9); //显示图片 try { imwrite("E:\\code\\图片\\3.jpg", mat, compression_params); imshow("生成的jpg图", mat); fprintf(stdout, "jpg图片文件的alpha数据保存完毕~\n可以在工程目录下查看由imwrite函数生成的图片\n"); waitKey(0); } catch (runtime_error& ex) { fprintf(stderr, "图像转换成PNG格式发生错误:%s\n", ex.what()); return 1; } return 0; }运行效果图:
相关文章推荐
- 数据库内容导出到EXCEL生成报表和图形的方法
- KLSudoku的数独题目生成方法和难度控制说明
- Java Web开发之图形验证码的生成与使用方法
- ACM题目测试数据生成方法(个人经验)
- QT5.6+opencv2.49+vs2015生成的exe可执行程序打包方法
- 基于规则的分形图形生成方法
- 【opencv】opencv编译生成sln的方法
- opencv2-1随机图形与文字生成
- 剑指officer第二题:题目:设计一个类,我们只能生成该类的一个实例(五种方法实现)
- asp.net使用ashx生成图形验证码的方法示例
- 生成透明GIF的方法
- 生成透明的图形
- php生成图形验证码几种方法小结
- Java Web开发之图形验证码的生成与使用方法
- 【OpenCV】图形生成算法:多边形的扫描转换
- jsp中生成图形验证码 方法2利用在servlet里面来生成验证码
- php生成图形验证码几种方法小结
- uva 11205 The Broken Pedometer(经典的子集生成题目,在此总结了三种子集生成的方法~)
- ASP.NET生成图形验证码的方法详解
- Java Web开发之图形验证码的生成与使用方法