3.加载、显示、修改、保存图像 --- OpenCV从零开始到图

2018-05-14  本文已影响419人  小嗷_a2e2

先简单说说从opencv的目前状态,齐全的学习资料基本都是2016年以前的(无法一步到位,博客基本停更,或者写给自己看)。


小嗷是从17年开始10月4号,开始入坑---填坑----利用QT编写像样的物体识别。(注意识别检测出物体是两个概念)


Mat - The Basic Image Container

有时间有兴趣可以查看上述文档。

1.笔记

个人笔记(页数为OpenCV3编程入门)

加载图像(用cv::imread)


  1. IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变
  2. IMREAD_GRAYSCALE ( 0)表示把原图作为灰度图像加载进来
  3. IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来

注意:OpenCV支持JPG、PNG、TIFF等常见格式图像文件加载

显示图像 (cv::namedWindos 与cv::imshow)

保存图像(cv::imwrite)


  1. 第一个参数:将要另保存图像的名称,可以自己定义名称。
  2. 第二个参数:你要要保存的图像名称,是目前已经存在的图像。
  3. 第三个参数: 来设置对于图像格式的参数,一般省略,不写

图像加载、修改、保存的代码演示

//首先是导入相关函数(类似于包java import....)
#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>

//域名控件(类似java导入包后,无需在每个对象中添加包名例如:本来要写cv::Mat 添加域名空间后,只需写Mat)
using namespace cv;

//主函数
int main(int argc, char** argv)
{
    //创建一个Mat对象并在里面写入图片数据(图片即存储像素点的矩阵数组)
    Mat src = imread("D://xixi.jpg");
    //判断Mat是否有数据。无,打印消息,退出,有就继续(C和java都差不多)
    if (src.empty()) {
        printf("couldn't load image");
        //暂停
        getchar();
        //返回-1,退出
        return -1;
    }
    //创建windows窗口,名字为"原始图",自动匹配图片大小
    namedWindow("原始图",CV_WINDOW_AUTOSIZE);
    //展示图片
    imshow("原始图", src);
    //在创建一个Mat对象
    Mat output_image;
    //改变原始图颜色为灰色,output_image为输出图片数组
    cvtColor(src, output_image,CV_BGR2GRAY);
    namedWindow("灰色图",CV_WINDOW_AUTOSIZE);
    imshow("灰色图",output_image);
    //保存图片
    //imwrite("wencai.png",output_image);

    //程序会无限制的等待用户的按键事件,即任意键退出
    waitKey(0);
    return 0;
}

效果图:

image

保存文件

image

转载QQ邮箱通知一下,未经授权请勿转载,明天见,886。

上一篇 下一篇

猜你喜欢

热点阅读