精通人脸识别03:图像显示

精通人脸识别03:图像显示


opencv用来显示图片:Mat类及其类的方法进行处理、imread函数、namedWindow函数、imshow函数、imwrite函数、waitKey()

1)Mat类型 主要用来存放图像的数据结构

Mat myMat= imread("dota.jpg");  

2)imread函数 用来读取图像的,其原型:

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

  第一个参数:图片路径名

  第二个参数:自带缺省值1

        CV_LOAD_IMAGE_UNCHANGED(-1,忽略)

        CV_LOAD_IMAGE_GRAYSCALE(0,图像转换成灰度1)

        CV_LOAD_IMAGE_COLOR(1,彩色)

        CV_LOAD_IMAGE_ANYDEPTH(2)

        CV_LOAD_IMAGE_ANYDEPTH(4)

Mat image0 = imread ( "boy.png" , CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR );//载入最真实的图像
Mat imagel = imread ( "boy.png" , 0);    //载入灰度图
Mat image2 = imread ( "boy.png" ,199 );    //载入3通道的彩色图像
Mat image3 = imread ( "boy.png"); //载入3通道的彩色图像

3)namedWindow函数 用于创建一个空的窗口,后续可以利用这个窗口句柄来显示图片,目前已被imshow替代。

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

  第一个参数:窗口的命名

  第二个参数:WINDOW_NORMAL(没有限制)

        WINDOW_AUTOSIZE(自动调整,不能手动,默认值)

        WINDOW_OPENGL(窗口创建的时候便会支持OpenGL)

namedWindow("boy"); 


4)imshow函数 显示一幅图像,原型为:

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

  第一个参数:填需要显示的窗口标识名称

  第二个参数:填需要显示的图像

imshow("boy",image); 

 

5)imwrite函数 输出图像到文件,原型为:

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

  第一个参数:填需要写入的文件名,带上后缀

  第二个参数:填一个Mat类型的图像数据

  第三个参数:一般不用填

imwrite("我喜欢打dota2 .jpg",image);  

6)waitKay()原型为int waitKey(int delay = 0),其中delay的单位是毫秒,表示显示图片的时间,如果delay=0表示一直显示图片。

一个综合的示例:

#include <opencv2/imgproc/imgproc.hpp>
#include "opencv2/imgproc/types_c.h"
#include <opencv2/highgui.hpp>

using namespace cv; 

int main( ) 

    Mat girl=imread("girl.jpg"); //载入图像到Mat 

    namedWindow("【1】动漫图"); //创建一个名为 "【1】动漫图"的窗口  

    imshow("【1】动漫图",girl);//显示名为 "【1】动漫图" 的窗口  

    //载入图片 

    Mat image= imread("dota.jpg",199); 

    Mat logo= imread("dota_logo.jpg"); 

    //载入后先显示 

    namedWindow("【2】原画图"); 

    imshow("【2】原画图",image); 

    namedWindow("【3】logo图"); 

    imshow("【3】logo图",logo); 

    //定义一个Mat类型,用于存放,图像的ROI 

    Mat imageROI; 

    //方法一 

    imageROI=image(Rect(800,350,logo.cols,logo.rows)); 

    //方法二 

    //imageROI=image(Range(350,350+logo.rows),Range(800,800+logo.cols)); 

    

    //将logo加到原图上 

    addWeighted(imageROI,0.5,logo,0.3,0.0,imageROI); 

    

    //显示结果 

    namedWindow("【4】原画+logo图"); 

    imshow("【4】原画+logo图",image); 

    

    //-----------------------------------【三、图像的输出】-------------------------------------- 

    //输出一张jpg图片到工程目录下 

    imwrite("我喜欢打dota2 .jpg",image); 

    waitKey(); 

    return 0; 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值