OpenCv图像的加载、修改与保存

1.1 imread函数

  • 读取(加载)

​ 对于图像的读取,使用imread()函数来进行读取,

Mat imread( const String& filename, int flags )

第一个参数 filename: 表示图像的路径。

第二个参数 flags:表示读取图像的方式。

IMREAD_UNCHANGED = -1,读取原图,默认原图读取

IMREAD_GRAYSCALE = 0,以灰度图方式读取

IMREAD_COLOR = 1,以RGB方式读取原图

1.2 imshow函数

imshow通常用来显示图像,函数如下

void imshow(const String& winname, InputArray mat);
//参数1 : winname表示窗口名称
//参数2 : mat表示输入的mat图像

一般来说,imshow可以搭配namedWindow()函数一起使用

有时候,用imshow打开的图片的大小窗口非常大,是按图片的原始比例显示的,所以namedWindow()可以选择多种方式打开并显示图片

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat img=imread("图片路径");
    nameWindow("原图",WINDOW_FREERATIO);//窗口大小自适应比例
    imshow("原图",img);	//这里的字符串 "原图",就是namedWindow所定义的窗口
    waitKey(0);			//等待时间,如果参数是0,那么一直阻塞,ms为单位
    destroyAllWindows() ;//执行到这里时候,对所有的窗口都销毁
}

第二个参数,标志参数,代表要创建的窗口的属性

标志参数作用
WINDOW_NORMAL显示图像后,允许用户随意调整窗口大小
WINDOW_AUTOSIZE根据图像大小显示窗口,不允许用户调整大小
WINDOW_FREERATIO窗口大小自适应比例
WINDOW_KEEPRATIO保持图像的比例

1.3 cvtColor函数

图像颜色转换,各种类型之间相互转换函数

void cvtColor(InputArray src,outputArray dst,int code,int dstCn=0);
//第一个参数为输入图像;
//第二个参数为输出图像;
//第三个参数为颜色空间转换的标识符(具体见表);;
//第四个参数为目标图像的通道数,若该参数是0,表示目标图像取源图像的通道数。

在这里插入图片描述

1.4 imwrite函数

bool cv::imwrite(const String & filename,InputArray img,const std::vector<int> & params = std::vector<int>() )

参数:

  • filename:需要保存图像的文件名,要保存图片为哪种格式,就带什么后缀。
  • img:要保存的图像。
  • params:表示为特定格式保存的参数编码。

eg:

	Mat hsv, gray;
	cvtColor(src, hsv, COLOR_BGR2HSV);
	cvtColor(src, gray, COLOR_BGR2GRAY);

	namedWindow("HSV", WINDOW_NORMAL);
	namedWindow("灰度", WINDOW_NORMAL);
	imshow("HSV", hsv);
	imshow("灰度", gray);
	
	imwrite("D:\C++\opencv_stu\outputImg\hsv.png", hsv);
	imwrite("D:\C++\opencv_stu\outputImg\gray.png", gray);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值