基础之基础——图像加载显示修改保存(imread,namedWindow,imshow,imwrite,cvtColor)

opencv中最基础的就是图像的加载显示修改和保存,这是一切复杂图像处理的基础,也是入门中的基础。

imread:读取图像

namedWindow:设置显示窗口

imshow:图片显示

imwrite:保存图像

cvtColor:对图片进行简单的简单的处理

这几个函数是opencv入门级要掌握的重要且基础的函数。

imread

首先是imread函数,负责读取图片,最最简单的方式就是

imread("ck567.jpg"); //直接读取图片路径名

除此之外imread函数的完全体还是要知道滴,如下所示

imread(filename,flag);

该函数有两个参数,filename为图像名,flag是以什么方式打开图像文件,改参数可以省略,省略的情况下默认原格式加载,完整的语句如下。IMREAD_UNCHANGED表示不做修改的加载原图像,flag还可以是IMREAD_GRAYSCALE:以灰度图像加载,IMREAD_COLOR:以彩色图像加载。除此之外,flag还有很多,具体可参考:https://mangoroom.cn/opencv/opencv-learning-imread.html

imread(filename,IMREAD_UNCHANGED);

namedWindow

这是个创建窗口的函数,格式如下,也是有两个参数,windowname就是自己设置的窗口名,flag则是对窗口的一些设置,默认是WINDOW_AUTOSIZE ,和imread一样,默认情况可以省略,WINDOW_NORMAL :可以自行调整窗体大小,WINDOW_OPENGL :支持OpenGL(该情况博主也没有太了解)。

namedWindow(windowname,flag);

imshow

该函数就是进行图片显示的函数,格式如下。

imshow(filename,Matname);

看到这里就可以进行一个简单的程序了,读取一幅图像,进行显示。代码如下。

#include"iostream"
#include"opencv2/core/core.hpp"
#include"opencv2/highgui/highgui.hpp"
using namespace cv;
int main()
{
	Mat img1=imread("ck567.jpg",IMREAD_UNCHANGED); //原图像加载
	Mat img2=imread("ck567.jpg",IMREAD_GRAYSCALE); //灰度图像加载
	Mat img3=imread("ck567.jpg",IMREAD_COLOR);     //彩色图像加载
	namedWindow("刺客5671");
	imshow("刺客5671",img1);
	namedWindow("刺客5672");
	imshow("刺客5672",img2);
	namedWindow("刺客5673");
	imshow("刺客5673",img3);
	waitKey(0);
}

代码执行结果如下

imwrite

该函数为保存函数,将图片保存至某一路径

imwrite("路径",Matb变量名);

cvtColor

该函数为颜色空间转换函数,Mat1为要处理的图像,Mat2为处理后的图形,Mat2可作为新的Mat变量进行其他操作,转换类型较多,详细参考https://zouzhongliang.com/index.php/2019/08/19/opencv-yansekongjianzhuanhuanhanshucvtcoloryunyong/

cvtColor(Mat1,Mat2,转换类型);	

下面程序中的转换类型用的是COLOR_BGR2GRAY,将彩色图像转换成灰色。

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
	Mat image;
	image = imread("ck567.jpg"); //读取图片
	Mat gray_image;
	cvtColor( image, gray_image,COLOR_BGR2GRAY); //将图片由彩色变为灰色,赋予gray_image变量
	imwrite( "ck567-2.jpg", gray_image );        //保存变化后的图像
	namedWindow( "image", WINDOW_AUTOSIZE );
	namedWindow( "Gray image", WINDOW_AUTOSIZE );
	imshow("image",image);
	imshow( "Gray image", gray_image );
	waitKey(0);
	return 0;
}

效果如下。

打开原图片路径所在位置,发现变换后的灰色图像保存在了同一目录下。

opencv learning............

猜你喜欢

转载自blog.csdn.net/yuan123890/article/details/107139820
今日推荐