OpenCV基本操做

加載圖像(cv::imread)

功能:是加載一個圖像文件成爲Mat對象 ios

格式: 函數

1 編碼

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

解釋: code

參數類型的對象

描述blog

const String& 類型的 filenameinput

表示圖像文件的名稱,常見的圖像格式有JPG、PNG、TIFF等it

 

   

int 類型的 flagsio

表示加載圖像是什麼類型,默認爲三通道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;

}

   

運行結果:

相關文章
相關標籤/搜索