OpenCV 圖像加載,修改和保存

2018-08-28 15:39 更新
注意
我們假設(shè)現(xiàn)在你知道如何使用cv :: imread加載圖像并將其顯示在窗口中(使用cv :: imshow)。閱讀加載和顯示圖像教程否則。

目標(biāo)

在本教程中,您將學(xué)習(xí)如何:

代碼

這里是:

#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
 char* imageName = argv[1];
 Mat image;
 image = imread( imageName, IMREAD_COLOR );
 if( argc != 2 || !image.data )
 {
   printf( " No image data \n " );
   return -1;
 }
 Mat gray_image;
 cvtColor( image, gray_image, COLOR_BGR2GRAY );
 imwrite( "../../images/Gray_Image.jpg", gray_image );
 namedWindow( imageName, WINDOW_AUTOSIZE );
 namedWindow( "Gray image", WINDOW_AUTOSIZE );
 imshow( imageName, image );
 imshow( "Gray image", gray_image );
 waitKey(0);
 return 0;
}

說明

  • 我們首先使用位于由imageName給出的路徑中的cv :: imread加載圖像。對于這個例子,假設(shè)你正在加載BGR圖像。
  • 現(xiàn)在我們將把我們的圖像從BGR轉(zhuǎn)換成灰度格式。OpenCV有一個非常好的功能來做這種轉(zhuǎn)換:
    cvtColor( image, gray_image, COLOR_BGR2GRAY );

      你可以看到,cv :: cvtColor作為參數(shù):

源圖像(圖像)
目標(biāo)圖像(gray_image),我們將保存轉(zhuǎn)換的圖像。
一個附加參數(shù),指示將執(zhí)行什么樣的轉(zhuǎn)換。在這種情況下,我們使用COLOR_BGR2GRAY(因?yàn)閏v :: imread在彩色圖像的情況下具有BGR默認(rèn)通道順序)。
  • 所以現(xiàn)在我們有我們的新的gray_image,并希望將其保存在磁盤上(否則在程序結(jié)束后會丟失)。為了保存它,我們將使用一個函數(shù)來解析cv :: imreadcv :: imwrite
  • imwrite(“../../images/Gray_Image.jpg”,gray_image);

      這將節(jié)省我們的gray_imageGray_Image.jpg在文件夾圖像位于兩個級別我的當(dāng)前位置。

  • 最后,我們來看看圖片。我們創(chuàng)建兩個窗口并使用它們來顯示原始圖像以及新的圖像:

namedWindow( imageName, WINDOW_AUTOSIZE );
namedWindow( "Gray image", WINDOW_AUTOSIZE );
imshow( imageName, image );
imshow( "Gray image", gray_image );
  • 程序的waitKey(0)函數(shù)調(diào)用添加到用戶密鑰按下后永遠(yuǎn)等待。

結(jié)果

當(dāng)你運(yùn)行你的程序你應(yīng)該得到這樣的東西:

OpenCV 圖像加載,修改和保存

如果你檢查你的文件夾(在我的情況下圖像),你應(yīng)該有一個名為Gray_Image.jpg的新的.jpg文件:

OpenCV 圖像加載,修改和保存

恭喜,您完成了本教程!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號