📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
文章目录
主要学习四个API函数
1.imread读取图像
2.namedWindow创建图像显示窗口
3.imshow显示图像
4.cvtColor-色彩空间转换函数
5.imwrite保存图像
6.resize修改图像尺寸
1.imread-读取图像
加载图像就是将图像进行读取,获取图像的信息,并存到一个Mat对象中,方便后续操作。
注意:读进来的是RGB顺序的图像。
函数原型
Mat imread(const String& filename,int flags = IMREAD_COLOR);
参数含义如下:
第一个参数表示输入图像所在的路径以及图像名。
注意:OpenCV支持JPG、PNG、TIFF等常见格式图像文件加载。第二个参数,表示加载的图像是什么类型,支持常见的三个参数值:
1.IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变
2.IMREAD_GRAYSCALE ( 0)表示把原图作为灰度图像加载进来
3.IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来
注:一般情况下,我们都默认调用第一个参数,第二个参数不用填,默认加载原图
2.namedWindow-创建图像显示窗口
创建窗口的API为namedWindow,功能是创建一个OpenCV窗口,它是由OpenCV自动创建与释放,因此无需敲代码销毁它。
函数原型:
namedWindow(“Window Title”, WINDOW_AUTOSIZE)
参数含义如下:
第一个参数:表示窗口名称;
第二个参数:Mat对象,有四种类型:
1.WINDOW_AUTOSIZE:显示图像本身的尺寸,不可以改变窗口大小
2.WINDOW_NORMAL:可以手动拖动窗口,改变尺寸。
3.WINDOW_FULLSCREEN:全屏显示
4.WINDOW_FREERATIO:使窗口在没有比率约束的情况下可调整大小.
5.WINDOW_KEEPRATIO:使窗口可调整大小,但保留所显示图像的比例。
例如:
namedWindow("input", WINDOW_AUTOSIZE);
char input[]=" inputimage";
namedWindow(inpu, WINDOW_AUTOSIZE);
#define INPUT_TITLE "input image" // 宏定义,原始图片
namedWindow(INPUT_TITLE, CV_WINDOW_AUTOSIZE);
或是使用数字代替类型
namedWindow("input", 1);
3.imshow-显示图像
函数原型
imshow ( const String & winname, InputArray mat )
第一个参数:窗口名称。
第二个参数:要显示的图像
4.cvtColor-色彩空间转换函数
COLOR_ BGR2GRAY = 6彩色到灰度
COLOR_ GRAY2BGR = 8灰度到彩色
COLOR_ BGR2HSV = 40 BGR到HSV
COLOR_ HSV2BGR = 54 HSV到BGR
5.imwrite-保存图像
保存图像,图像类型由扩展名决定。
第一个参数是图像保存路径
第二个参数是图像Mat对象
6.resize修改图像尺寸
代码演示
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
Mat src, src_gray, src_HSV;
//1.读取图像
src = imread("D:/images/lena.jpg");//Mat表示矩阵,也就是图像的本质。
//2.创建新的窗口
namedWindow("input", WINDOW_AUTOSIZE);//input表示窗口名称;WINDOW_AUTOSIZE会自动根据图像大小,显示窗口大小,不能人为改变窗口大小
//3.显示原像
imshow("input", src);//根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二参数是Mat对象
//4.色彩空间转换-转灰度,hsv空间图像**
cvtColor(src, src_gray, COLOR_BGR2GRAY);
cvtColor(src, src_HSV, COLOR_RGB2HSV);
imshow("src_gray", src_gray);
imshow("src-HSV", src_HSV);
//5.保存图像
imwrite("D:/灰度图像.tif", src_gray);//保存灰度图像在D盘中,名称为“灰度图像”,格式为tif
waitKey(0);//waitKey()表示停顿时间,o表示一直阻塞,上面的图像就会一直显示。如果是1,表示显示1毫秒之后图像消失。
destroyAllWindows();//关闭所有显示窗口,由于创建的窗口可以自动销毁,因此改行代码可写可不写
return 0;//代表函数正常终止
}