看得见的东西往往使我们更有兴致,从看得见的开始学


【一】头文件和名字空间


你可以直接包含整个opencv的所有文件,也可以按需包含各个模块文件,模块结构的划分可以参考博文:opencv模块结构划分,这个以后可以慢慢了解,现在我们暂时包含整个opencv的所有文件吧。opencv的使用了独立的名字空间cv。代码如下:

#include <opencv2/opencv.hpp>
using namespace cv;

【二】图片读取


读取函数是imread()
函数原型:

Mat imread(const string& filename,intflags=1 );

输入:参数1为图像路径和图片名,参数2为图像颜色类型
输出:一个mat,这是一个表示图像的类。
附:–>opencv支持的图片类型为有如下几种

Windows位图 - .bmp, .dib
JPEG文件 - .jpeg, .jpg, .jpe
JPEG 2000文件- .jp2
PNG图片 - .png
Sun rasters光栅文件 - .sr, .ras
TIFF 文件 - .tiff, .tif

–>参数2取值:

CV_LOAD_IMAGE_UNCHANGED-,这个标识在新版本中被废置了,忽略。
CV_LOAD_IMAGE_ANYDEPTH- 如果取这个标识的话,若载入的图像的深度为16 位或者32位,就返回对应深度的图像,否则,就转换为8位图像再返回。
CV_LOAD_IMAGE_COLOR- 如果取这个标识的话,总是转换图像到彩色一体
CV_LOAD_IMAGE_GRAYSCALE- 如果取这个标识的话,始终将图像转换成灰度1


【三】图像显示


1.在显示图像之前,需要创建一个容纳图像的窗口,使用namedWindow()函数来创建窗口
函数原型:

void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );   

输入:
参数1为窗口名,也是窗口id,是窗口的唯一标识
参数2为窗口类型
附:
窗口类型

WINDOW_NORMAL:设置了这个值,用户便可以改变窗口的大小(没有限制)
WINDOW_AUTOSIZE:如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小。
WINDOW_OPENGL: 如果设置了这个值的话,窗口创建的时候便会支持OpenGL。

2.图片显示函数imshow()
函数原型:

void imshow(const string& winname, InputArray mat);

输入:
参数1为窗口标识,输入之前创建的窗口名即可
参数2为要显示的图片(这里的InputArray将其简单看成一个mat类就行)


【四】图片输出


很多时候我们需要将处理之后的图片输出到文件中,可以使用imwrite()函数
函数原型:

bool imwrite(const string& filename,InputArray img, const vector<int>& params=vector<int>() ); 

输入:
参数1为文件名,其中可以包含文件路径,输出格式有文件扩展名决定,固需要加上文件扩展名
参数2为需要输出的图片,输入对应mat即可
参数3表示为特定格式保存的参数编码,主要是图片质量或压缩比之类的参数,一般可以缺省,见附。
输出:
是否输出成功的bool值。
附:

对于JPEG格式的图片,这个参数表示从0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值是95.
对于PNG格式的图片,这个参数表示压缩级别(CV_IMWRITE_PNG_COMPRESSION)从0到9。较高的值意味着更小的尺寸和更长的压缩时间,而默认值是3。
对于PPM,PGM,或PBM格式的图片,这个参数表示一个二进制格式标志(CV_IMWRITE_PXM_BINARY),取值为0或1,而默认值是1。

【五】一个综合的实例

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;
int main(){const char* path = "F:/test.jpg";//从文件中读入图像Mat img = imread(path);//如果读入图像失败if (img.empty()){fprintf(stderr, "Can not load image %s\n", path);return -1;}//显示图像imshow("image", img);//输出文件imwrite("F:/output.jpg", img);//此函数等待按键,按键盘任意键就返回waitKey();return 0;
}

显示:

输出文件:

【opencv】2.图像读取、显示、输出相关推荐

  1. Python,OpenCV骨架化图像并显示(skeletonize)

    Python,OpenCV骨架化图像并显示(skeletonize) 1. 效果图 2. 源码 参考: 1. 效果图 自己画一张图,原图 VS 骨架效果图如下: opencv logo原图 VS 骨架 ...

  2. OpenCV放大图像:多输出

    OpenCV放大图像:多输出 放大图像:多输出 建造 示例的源代码 解释 设置标题和名称空间 创建Dnn Superres对象 阅读模型 设置模型 给出节点名称和缩放因子 放大图像 放大图像:多输出 ...

  3. OpenCV放大图像:单输出

    OpenCV放大图像:单输出 放大图像:单输出 建造Building 解释 设置标题和名称空间 创建Dnn Superres对象 阅读模型 设置模型 放大图像 python中的一个例子 放大图像:单输 ...

  4. python 3.8.0版本的skimage库是什么_python的skimage库 图像读取显示

    单幅图像读取并显示 代码 """ 读取图像并显示 """ import matplotlib.pyplot as plt import ma ...

  5. skimage 图像读取显示

    单幅图像读取并显示 代码 """ 读取图像并显示 """ import matplotlib.pyplot as plt import ma ...

  6. matlab 图像读取长宽_计算机视觉学习笔记1 图像读取显示和尺寸变换

    第一天,图像的读取,显示和尺寸变换 c++,python,MATLAB各实现一遍,以这个头骨图像为例吧 c++调用OpenCv实现图像显示和尺寸变换 c++用的编译器为clion,因此需要先配置cma ...

  7. DivX/XviD -opencv 视频文件读取显示问题解决

    DivX DivX 是将影片的音频由MP3来压缩.视频由MPEG-4技术来压缩,最后再将两部分合成制作而成的.由于MP3和MPEG-4超强的压缩能力,使得影片的容量急剧减少,可以将一部2G大小的DVD ...

  8. python opencv读取视频没声音_python + opencv: 解决不能读取视频的问题

    博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像,程序如下: cap = cv2.VideoCapture(0) ret, frame = cap.read() 使用这个程序 ...

  9. opencv读取图像始终显示NoneType

    1. 问题 项目需要用opencv实现图像的读取和变化,读取图像时却一直显示图像类型为NoneType, def data_aug(img_path,path,count):print(img_pat ...

最新文章

  1. Go 1.9 sync.Map揭秘
  2. 浅谈Java解决鸡兔同笼问题的思路
  3. linux系统正常停机的命令,Linux系统重启命令大全
  4. request mysql 接口_TP5接口开发
  5. DataDirectory是什么?
  6. 专题导读:高性能计算虚拟数据空间
  7. 关注电子商务网站开发-《网站中常用的Jquery插件》
  8. 解析json结构绘制canvas
  9. face++人脸识别源码
  10. GIS专业/GIS方向需要考那些证书
  11. 简图记录-番茄时间管理
  12. 一句话,读懂首席架构师、CTO和技术总监的区别
  13. 外贸大宗商品行业ERP管理解决方案
  14. Robust regression(稳健回归)
  15. [BJOI2019]勘破神机(斯特林数+二项式定理+数学)
  16. Word怎么在方框里面打对勾
  17. CISCO XRV-9K KVM虚机启动问题
  18. android webview 打开淘宝链接 error
  19. Swift Literal Convertibles
  20. Stk 10 软件获取卫星位置、高度角、方位角

热门文章

  1. 网上书城|基于PHP实现网上书店商城藉项目
  2. 豆沙绿护眼色样式在html中的代码
  3. C 语言mj普通简单算法
  4. 应用bootstrap模板
  5. 推荐系统之AFM代码详解
  6. Go语言学习 二十一 内嵌
  7. 胆囊结石与什么因素有关
  8. “GitHub: Your account has been flagged.”的解决方法
  9. IT英语中英文对照:著名的软件产品
  10. 数字货币钱包 HD Wallet的助记词和种子的生成原理(BIP39)