• OpenCV基本操作


    加载图像(cv::imread)

    功能:是加载一个图像文件成为Mat对象

    格式:

    1

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

    解释:

    参数类型的

    描述

    const String& 类型的 filename

    表示图像文件的名称,常见的图像格式有JPG、PNG、TIFF等

     

       

    int 类型的 flags

    表示加载图像是什么类型,默认为三通道RGB彩色图像,支持常见的三个参数值:

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

       

    显示图像(cv::imshow)

    功能:是根据窗口名称显示图像到窗口上去

    格式:

    1

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

    解释:

    参数类型的

    描述

    const String& 类型的 winname

    填需要显示的窗口标示名称

    InputArray 类型的 mat

    填需要显示的图像

       

    创建窗口(cv::namedWindow

    功能:是创建一个OpenCV窗口,它由OpenCV自动创建于释放。

    格式:

    1

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

    解释:

    参数

    描述

    Const 类型的 String& winname

    填写创建窗口名称

     

       

    Int 类型的 flags

    窗口标识,常见的三种值:

    • WINDOW_AUTOSIZE 根据图像大小显示窗口大小,无法修改窗口的小
    • WINDOW_NORMAL 根据自己需求修改窗口大小,跟QT集成的时候会使用
    • WINDOW_OPENGL 创建支持OpenGL的窗口

       

    修改图像:(cv::cvtColor)

    作用:cvtColor的功能是将图像从一个色彩空间转换到另一个色彩空间。

    格式:

    1

    void cvtColor( InputAvoid cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );

    解释:

    参数

    描述

    InputAvoid cvtColor( InputArray src

    原图像

    OutputArray dst

    色彩空间转换之后的图像

    Int 类型的 dstCn

    源和目标色彩空间例如:COLOR_BGR2HLS、COLOR_BGR2GRAY等

       

    保存图像到指定文件:imread()函数

    格式:

    1

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

    参数:

    参数

    描述

    const 类型的 String& filename

    填写存储出的位置、文件名称以及后缀例如"D:/1.jpg"

    InputArray 类型的 img

    一般填写Mat类型的图像数据名称

    Const 类型的 std

    表示为指定格式保存的参数编码(一般可不填)

       

    颜色空间转换:cvtColor()函数

    格式:

    1

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

    参数:

    参数

    描述

    InputArray src

    输入图像

    OutputArray dst

    输出图像

    Int 类型的 code

    颜色空间转换的标识符

    Int 类型的 dstCn

    目标图像的通道数,默认为0,表示目标图像取源图像的通道数

    例子:

    1

    2

    Mat src1, dst;

    cvtColor(src1, dst, CV_BGR2GRAY);

    拓展:

       

    完整实例:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    #include <opencv2/opencv.hpp>

    #include <iostream>

    #include <math.h>

       

    using namespace cv;

    int main(int argc, char**argv)

    {

            Mat src = imread("./picture/1.jpg");        //Mat src = imread("D:/Picture/123.jpg", IMREAD_GRAYSCALE);看、可以为绝对路径与相对路径

            if (src.empty())

            {

                    printf("路径不对");

                    return -1;

            }

            /*namedWindos创建一个OpenCV窗口                */

            imshow("input", src);

       

            namedWindow("output_Gary", WINDOW_AUTOSIZE);        

            /*

             WINDOW_AUTOSIZE:自动调整为适应图像大小窗口

             WINDOW_NORMAL:用户可以改变窗口大小

             WINDOW_OPENGL;创建窗口支持OPENGL

             IMREAD_COLOR作为RGB加载

            */

            Mat output_woman;

            cvtColor(src, output_woman, CV_BGR2GRAY);        //将图像转换为灰度图

            imshow("output_Gary", output_woman);

       

            imwrite("焰灵姬.jpg", output_woman);        //保存图像

       

            waitKey(0);

            return 0;

    }

       

    运行结果:

       

  • 相关阅读:
    Drozer渗透测试工具(使用篇)
    Teamcenter中TCComponentItem与TCComponentBOMLine的创建
    Swing中分割面板JSplitPane的使用
    Swing中菜单栏JToolBar的使用
    Javaweb项目导出成jar包并使用Windows定时任务定时执行
    TCSOA获取BOMLine
    SQLite Expert安装与注册
    获取分类节点
    处理TC的Command问题
    通过TCComponentBomLine获取ItemRevision的两种情况
  • 原文地址:https://www.cnblogs.com/gghy/p/12234496.html
Copyright © 2020-2023  润新知