博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
002——加载、修改、保存图像
阅读量:6979 次
发布时间:2019-06-27

本文共 1948 字,大约阅读时间需要 6 分钟。

涉及API

imread

原型

CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
View Code

功能

加载图像文件成为一个Mat对象。OpenCV支持JPG、PNG、TIFF等常见格式图像文件加载

参数

filename:表示图像文件名称

flags:表示加载的图像是什么类型。

IMREAD_UNCHANGED(<O)表示加载原图,不做任何改变

IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来

IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来

返回值

返回一个Mat类对象

namedWindow

原型

CV_EXPORTS_W void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
View Code

功能

创建一个OpenCV窗口,它由OpenCV自动创建与释放,你无须销毁他

参数

winname:窗口名称

flags:窗口标识

WINDOW_NORMAL:跟QT集成的时候会使用,允许修改窗口大小。

INDOW_AUTOSIZE:如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小。

WINDOW_OPENGL:如果设置了这个值的话,窗口创建的时候便会支持OpenGL

返回值

imshow

原型

CV_EXPORTS_W void imshow(const String& winname, InputArray mat);
View Code

功能

根据窗口名称将图像显示到指定的窗口。

参数

winname:窗口名称,对应namedWindow创建窗口时制定的窗口名称

mat:Mat对象,对应imread加载图形时得到的Mat对象

返回值

cvtColor

原型

CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
View Code

功能

将一个图像从一个颜色空间转换到另一个颜色空间,但是从RGB向其他类型转换时,必须明确指出图像的颜色通道

参数

src:要进行颜色空间变换的原图像,可以是Mat类

dst:要进行颜色空间变换后存储图像,也可以Mat类

code:转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片

dstCn:目标图像通道数,如果取值为0,则由src和code决定

返回值

示例代码

#include
#include
using namespace cv;int main(int argc, char **argv){ Mat src = imread("./girl.jpg"); if (src.empty()) { std::cout << "Could not load image...\n" << std::endl; return -1; } namedWindow("Girl", CV_WINDOW_AUTOSIZE); imshow("Girl",src); Mat out; namedWindow("Out", CV_WINDOW_AUTOSIZE); cvtColor(src,out,CV_BGR2GRAY); imshow("Out", out); waitKey(0); return 0;}
View Code

imwrite

原型

CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,              const std::vector
& params = std::vector
());
View Code

功能

保存图片

参数

filename:需要写入的文件名,会自己创建(像imwrite("1.jpeg",src);这样)

img:要保存的图像

params:表示为特定格式保存的参数编码

返回值

bool是否报错成功

转载于:https://www.cnblogs.com/kelamoyujuzhen/p/9419564.html

你可能感兴趣的文章
跟我学Kafka之NIO通信机制
查看>>
关于版本管理
查看>>
1 Java NIO概述-翻译
查看>>
图像延迟加载 && 列表图顺序加载
查看>>
MySQL 基础架构你不知道的那些事!
查看>>
Vue学习笔记(1)——在页面右上角实现可悬浮/隐藏的系统菜单
查看>>
UITableView占位图的低耦合性设计
查看>>
一个女装小程序的瀑布流实现
查看>>
Docker实现Mariadb分库分表、读写分离
查看>>
Node.js核心内容
查看>>
github克隆本地项目
查看>>
j抽奖
查看>>
GMQ力争为全球区块链数字资产技术应用贡献一份力量
查看>>
VUE+Vant 实现图片上传
查看>>
ajax实现点击加载更多
查看>>
为什么JavaScript没有类而使用原型?——JavaScript语言特性来历
查看>>
TarsGo新版本发布,支持protobuf,zipkin和自定义插件
查看>>
Flutter 如何创建并发布 Plugin (VS Code + GitHub 发布)
查看>>
TableStore实战:GEO索引打造亿量级店铺搜索系统
查看>>
js的防抖和节流
查看>>