【OpenCV】OpenCV函数精讲之 -- imwrite()函数
imwrite()函数用于输出图像到文件。
imwrite()格式:
bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>())
参数说明:
第一个参数:const string&类型的filename,指写入的文件名。需要带上后缀,如“123.jpg”。
第二个参数:InputArray类型的img,一个mat类型的图像数据。
第三个参数:constvector<int>(),一般情况下不需要填写。如果需要填写,有下面需要了解:
- 对于JPEG格式的图片,这个参数从0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值是95。
- 对于PNG格式的图片,这个参数表示压缩级别(CV_IMWRITE_PNG_COPRESSION)从0到9。较高的值表示更小的尺寸和更长的压缩时间,默认值时3。
- 对于PPM,PGM,或PBM格式的图片,这个参数表示一个二进制格式标志(CV_IMWRITE_PXM_BINARY),取值0或1,默认值时1。
imwrite函数例子:
#include <vector>
#include <stdio.h>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;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通道的MatMat 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("透明Alpha值图.png", mat, compression_params);imshow("生成的png图", mat);fprintf(stdout, "PNG图片文件的alpha数据保存完毕~\n可以在工程目录下查看由imwrite函数生成的图片\n");waitKey(0);}catch (runtime_error& ex) {fprintf(stderr, "图像转换成PNG格式发生错误:%s\n", ex.what());return 1;}return 0;
}
运行结果:
【OpenCV】OpenCV函数精讲之 -- imwrite()函数相关推荐
- 【OpenCV】OpenCV函数精讲之 -- createTrackbar()函数、getTrackbarPos()函数
目录 1.创建滑动条:createTrackbar()函数 2.获取当前轨迹条的位置:getTrackbarPos()函数 1.创建滑动条:createTrackbar()函数 createTrack ...
- 【OpenCV】OpenCV函数精讲之 -- imread()函数
imread函数用于读取文件中的图片到OpenCV中 格式为: Mat imread(const string& filename, int flags=1); Mat类是用于保存图像yi即其 ...
- 【OpenCV】OpenCV函数精讲之 -- addWeighted()函数(线性混合)
addWeighted()函数用来计算两个数组(图像阵列)的加权和. 格式如下: void addWeighted(InputArray src1, double alpha, InputArray ...
- 【OpenCV】OpenCV函数精讲之 -- copyTo()函数及Mask详解(附代码详解)
copyTo函数有两种重构方式: 第一种:A.copyTo(B),表示将A矩阵复制到B中 第二种:A.copyTo(B, mask),表示得到一个附加掩膜mask的矩阵B. 第一种方法就不多赘述,这里 ...
- 【OpenCV】OpenCV函数精讲之 -- namedWindow()函数
namedWindow函数用于创建一个窗口. namedWindow格式: void namedWindow(const string& winname, int flags=WINDOW_A ...
- 【OpenCV】OpenCV函数精讲之 -- imshow()函数
imshow()函数用于在指定的窗口显示一幅图像. 函数格式: void imshow(const string& winname, InputArray mat); 参数说明: 第一个参数: ...
- 【OpenCV】OpenCV函数精讲之 -- moveWindow函数用法详解
moveWindow()函数用于改变窗口的位置和尺寸 格式如下: BOOL moveWindow( const string& winname,int x, int y, int Width, ...
- python相关函数_python常用函数精讲
原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...
- python常用函数-python常用函数精讲
原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...
最新文章
- 联想android刷机教程视频,联想s939刷机教程(刷官方系统)
- 关于“Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次”的问题...
- mysql replace first_Java replaceFirst()方法
- 34988 Happy Reversal(二进制去取反)
- 【springmvc】@RequestParam详解以及加与不加的区别
- es6.0 java,es6.0.0源码idea启动问题
- 文件I/O(不带缓冲)之read函数
- 用了几个开源项目,都无法运行,推广柳氏风格
- Pytorch下使用多GPU训练模型
- Python:实现sha256算法(附完整源码)
- [Odoo] Report PDF 分页
- 平台规则更改对于淘宝客的影响
- 计算机键盘有哪些作用,电脑键盘各个按键有哪些作用 电脑键盘各个按键作用介绍...
- DRV_03_编写最简单的触摸屏驱动程序_基于QEMU
- TS是什么?特性是什么?与JS的区别?使用ts的好处?
- 计算机英语缩略词大全,计算机英语缩略语大全
- chrome图片下载插件
- FreeSWITCH 视频直播
- Unity Loading assembly failed“xxxx“reason: File does not contain a valid CIL image报错
- python与炒股_Python量化炒股入门与实战技巧
热门文章
- java实体序列化_java – 在JPA实体序列化(JSON)上防止JAX-RS中...
- data layui table 排序_使用pandas的pivot_table方法统计2019年各省份GDP最大最小值及其对应的所在城市...
- 1708硬盘转接口_ICY DOCK全球首款U.2转USB转接器震撼上市
- crack翻译成中文_crack是什么意思_crack在线翻译_英语_读音_用法_例句_海词词典
- PHP占用内存越来越多,解决phpQuery占用内存过多的问题
- linux下升级zookeeper
- linux raid livecd,liveCD,liveDVD,binDVD版本区别Centos
- word打开wps文件乱码_word文档打开是乱码解决方法
- alook浏览器js扩展网站_备用浏览器Alook所能实现的功能果真强大(文末有alook兑换码抽奖)...
- android 开源 高斯模糊_Android实现带毛玻璃效果(高斯模糊)背景的Dialog