OpenCV学习笔记:读取和写入图像文件

OpenCV学习笔记:读取和写入图像文件

1.若想复制一个Mat对象的的内存内容,应该使用成员函数Mat::clone(),而不是使用赋值运算符(“=”),赋值运算符只是对其引用的复制。

2.OpenCV提供了代理类InputArray和OutputArray,允许数据类型(std::vector<>、Matx<>、Vec<>或Scalar)作为函数的参数使用。

3.Mat类可以存储实数或复数值向量和矩阵、彩色图像或灰度图像、直方图、点云(point cloud)。

4.Mat对象创建的构造函数法:

Mat(nrows,ncols,type,fillvalue)

实例:

Mat img_A(4,4,CV_8U,Scalar(255));  //具有8位无符号整数的4*4单个通道数组   255=白色

拓展: 数据类型的标识符如下

CV_<bit depth>{U|S|F}C(<number of channels>)

上面代码中,U、S、F分别代表unsigned、signed和float数据类型。
(注意:CV_8U、CV_8UC1和CV_8UC(1)是等价的。)

5.函数imread的原型如下:

Mat imread(const String& filename,int flags = IMREAD_COLOR)

其中,flag指定读取图像的颜色,取值如下:

IMREAD_UNCHANGED = -1    //8位,彩色或非彩色
IMREAD_GRAYSCALE = 0     //8位,灰度
IMREAD_COLOR = 1         //未改变深度、颜色
IMREAD_ANYDEPTH = 2      //任意深度、未改变颜色
IMREAD_ANYCOLOR = 4      //未改变深度,任意颜色
IMREAD_LOAD_GDAL = 8     //使用gdal驱动程序

6.读取输入的图像文件之后,应检查操作是否成功,可使用成员函数in_image.empty()来实现这个检查。

7.进行窗口创建的函数:

void namedwidows(const String& winname,it flags = WINDOW_AUTOSIZE)

其中,flag指定窗口类型,取值如下:

WINDOW_NORMAL = 0x00000000       //窗口大小可调整
WINDOW_AUTOSIZE = 0x00000001     //窗口大小不可调整,窗口的大小由显示的图像所限制
WINDOW_OPENGL = 0x00001000       //opengl支持的窗口
WINDOW_FULLSCREEN = 1            //	·
WINDOW_FREERATIO = 0x00000100    //图像可任意使用,调整图像时没有比例限制
WINDOW_KEEPRATIO = 0x00000000    //调整图像时保持图像的缩放比例

8.函数waitkey的原型如下:

int waitkey(int delay=0)

注:
(1)该函数在数毫秒内等待一个按键操作,并返回建的编码,如果延迟结束时没有按键则返回-1。如果delay是0或负数,那么函数一直等待直到一个键被按下。
(2)只有至少创建和激活一个窗口时,函数waitkey才会工作。

9.函数imwrite的原型如下:

bool imwrite(const String& filename,InputArray img,const vector<int>& params=vector<int>())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉闫小亘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值