zoukankan      html  css  js  c++  java
  • opencv图像处理教程C++(二)图像的读入、显示、修改、保存

    引自:https://blog.csdn.net/qq_26907755/article/details/81661824

    图片的读取,通过函数cv::imread()来实现的;显示通过函数cv::imshow()来实现;而保存则通过cv::imwrite()来实现

    #include <opencv2/opencv.hpp>

    #include <opencv2/xfeatures2d.hpp>

    #include<opencv2/face.hpp>

    #include<iostream>

    #include<math.h>

    #include <string> 

    #include<fstream> 

    using namespace cv::face;

    using namespace cv;

    using namespace std;

    using namespace cv::xfeatures2d;

    int main()

    {

        /*

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

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

        IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来,默认 3通道没有 alpha

        */

        Mat src = imread("C:/Users/Administrator/Desktop/pic/5.jpg", IMREAD_COLOR);//可以不写第二个参数,默认原图

        /*读取图片,OpenCV支持:

        Windows位图-.bmp, *.dib

        JPEG文件 - *.jpeg, *.jpg, *.jpe

        PNG图片 - *.png

        便携文件格式- *.pbm, *.pgm, *.ppm

        Sun rasters光栅文件 - *.sr, *.ras

        TIFF 文件 - *.tiff, *.tif

        */

        if (src.empty())

        {

            cout << ("could not load image...") << endl;

        }

        namedWindow("input", CV_WINDOW_AUTOSIZE);//创建窗口,自动大小,可以省略这一步

        imshow("input", src);//显示图片,这个也会创建一个窗口,如果这个winname与上面窗口的winname不一致,会导致有两个窗口

         //第二个窗口显示转换了颜色空间的图片

        //namedWindow("output", CV_WINDOW_AUTOSIZE);

        Mat output;

        //cvtColor(src, output, CV_BGR2GRAY);//RGB图像转换成灰度图,实际上,三通道RGB的图像的顺序是 BGR,所以 CV_BGR2GRAY 是BGR开头

        //cvtColor(src, output, CV_BGR2HLS);//RGB图像转换成HLS颜色空间(专调亮度?),色相(H)、亮度(L)、饱和度(S)。 OpenCV提供转换的颜色空间还有其他很多,待研究..

        cvtColor(src, output, CV_BGR2HSV);//RGB图像转换成HSV颜色空间(专调饱和度?),色调(色相)(H),饱和度(S),明度(亮度)(V)

        imshow("output", output);//显示第二个图 //保存图片

        imwrite("C:/Users/Administrator/Desktop/pic/w5.jpg", output);//保存的图片的格式由给的字符串决定,给png就是png,jpg就是jpg,tif就是tif,write的结果:png比jpg大,tif几乎是原图大小

        waitKey(0);//一检查到键盘活动就关闭,参数delay如果传0表示阻塞等待键盘事件,传大于0表示只阻塞等待多少毫秒,键盘无响应返回-1

    }

    结果:

  • 相关阅读:
    bae问题
    union intersect minus
    在搭建SpringMvc Hibernate框架时遇到的问题
    详细解读Spring2.5 +Struts1.3 框架(使用Spring声明式事物管理和springjjdbc模板)
    javaee缓存技术 oscache ehcache
    Warning
    Math
    Test
    网络流24题-最小路径覆盖问题
    Wannafly summer camp Day3--Knight
  • 原文地址:https://www.cnblogs.com/lyp1010/p/13944336.html
Copyright © 2011-2022 走看看