C++OpenCV学习入门(2):图像处理主要函数介绍


一 图像处理函数

1. 图像载入:imread()

图像载入函数是imread(),其原型如下。

Mat imread(const string& filename, intflag=1);

(1)第一个参数const string& filename是需要载入的图像的路径;
(2)第二个参数intflag用来标志加载图像的颜色类型,其中默认值是1,表示三通道的彩色图像。

2. 图像显示:imshow()

imshow()函数用于在指定的窗口中显示一幅图像,其原型如下。

void imshow(const string& winname, InputArray mat);

(1)const string& winname表示想要在窗口显示的名字;
(2)InputArray mat则是要显示的图像。

3. 创建窗口:nameWindow()

这是一个用于创建窗口的函数,你也许会问这个活imshow()不都干了吗?当需要在显示图像之前创建窗口时,就要用到这个函数了。其原型如下。

void nameWindow(const string& winname, int flags=WINDOW_AUTOSIZE);

(1)const string& winnameimshow()函数中对应参数的作用相同;
(2)int flags=WINDOW_AUTOSIZE窗口类型标志,默认值是AUTOSIEZE,表示自适应图像大小。

4. 输出图像到文件:imwrite()

输出图像到文件采用imwrite()函数,其原型如下。

bool imwrite(const string& filename, InputArray img,const vector& params=vector());

(1)const string& filename表示输出文件路径名,注意带上后缀;
(2)InputArray img表示输入图像,一般是Mat类型的图像数据;
(3)const vector<int>& params表示为特定格式保存的参数编码,默认值是vector<int>(),一般不需要填写。

二 示例代码

//实现图像混合功能
void picpro::mergepic()
{
    Mat image_1 = imread("/Volumes/本地磁盘/Picture/头条号/影视/想见你/XJN-200206-20.png");
    
    Mat image_2 = imread("/Volumes/本地磁盘/Picture/头条号/影视/想见你/XJN-200205-10.png");
    Mat logo = imread("/Volumes/本地磁盘/Picture/头条号/LOGO/2.png");
    namedWindow("想见你-002");
    imshow("想见你-002", image_2);
    namedWindow("Logo-003");
    resize(logo, logo, Size(130,125));
    imshow("Logo-003", logo);
    
    namedWindow("image-001");
    imshow("image-001", image_1);
    
    //Rect rect1(800, 350, logo.cols, logo.rows);
    Mat imageROI = image_2(Rect(110, 55, logo.cols, logo.rows));
    addWeighted(imageROI, 0.5, logo, 0.3, 0.0, imageROI);
    namedWindow("mergepic");
    imshow("mergepic", image_2);
    
    waitKey(0);
}
int main(int argc, const char * argv[]) {
    
    picpro piccase;
    piccase.mergepic();
    
    system("pause");
    return 0;
}

测试结果:
在这里插入图片描述

发布了88 篇原创文章 · 获赞 16 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/WHEgqing/article/details/104686734