002——加载、修改、保存图像

涉及API

imread

原型

CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
View Code

功能

加载图像文件成为一个Mat对象。OpenCV支持JPG、PNG、TIFF等常见格式图像文件加载

参数

filename:表示图像文件名称

flags:表示加载的图像是什么类型。

IMREAD_UNCHANGED(<O)表示加载原图,不做任何改变

IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来

IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来

返回值

返回一个Mat类对象

namedWindow

原型

CV_EXPORTS_W void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
View Code

功能

创建一个OpenCV窗口,它由OpenCV自动创建与释放,你无须销毁他

参数

winname:窗口名称

flags:窗口标识

WINDOW_NORMAL:跟QT集成的时候会使用,允许修改窗口大小。

INDOW_AUTOSIZE:如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小。

WINDOW_OPENGL:如果设置了这个值的话,窗口创建的时候便会支持OpenGL

返回值

imshow

原型

CV_EXPORTS_W void imshow(const String& winname, InputArray mat);
View Code

功能

根据窗口名称将图像显示到指定的窗口。

参数

winname:窗口名称,对应namedWindow创建窗口时制定的窗口名称

mat:Mat对象,对应imread加载图形时得到的Mat对象

返回值

cvtColor

原型

CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
View Code

功能

将一个图像从一个颜色空间转换到另一个颜色空间,但是从RGB向其他类型转换时,必须明确指出图像的颜色通道

参数

src:要进行颜色空间变换的原图像,可以是Mat类

dst:要进行颜色空间变换后存储图像,也可以Mat类

code:转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片

dstCn:目标图像通道数,如果取值为0,则由src和code决定

返回值

示例代码

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace cv;
int main(int argc, char **argv)
{
    Mat src = imread("./girl.jpg");
    if (src.empty())
    {
        std::cout << "Could not load image...\n" << std::endl;
        return -1;
    }
    namedWindow("Girl", CV_WINDOW_AUTOSIZE);
    imshow("Girl",src);

    Mat out;
    namedWindow("Out", CV_WINDOW_AUTOSIZE);
    cvtColor(src,out,CV_BGR2GRAY);
    imshow("Out", out);

    waitKey(0);
    return 0;
}
View Code

imwrite

原型

CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,
              const std::vector<int>& params = std::vector<int>());
View Code

功能

保存图片

参数

filename:需要写入的文件名,会自己创建(像imwrite("1.jpeg",src);这样)

img:要保存的图像

params:表示为特定格式保存的参数编码

返回值

bool是否报错成功

猜你喜欢

转载自www.cnblogs.com/kelamoyujuzhen/p/9419564.html
今日推荐