OpenCV (一)圖片讀取、修改、保存


1.圖片讀取

#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>

using namespace cv;
using namespace std;

int main(int argc, char**argv) {
  cout << "Hello World" << endl;
  Mat src = imread("D:/Python/automotive/image/test.jpg");
  if (src.empty()) {
    cout << "Colud not load image..." << endl;
    return -1;
  }
  namedWindow("input image", WINDOW_AUTOSIZE);
  imshow("input image", src);

  waitKey(0);
  return 0;

}

imread(),加載圖片成為一個Mat對象,有兩個參數,第一個參數是圖片位置,第二個參數設置讀取圖片的類型:

  IMREAD_UNCHANGED(<0):表示加載原圖,不做任何改變

  IMREAD_GRAYSCALE(0):表示把原圖作為灰度圖片加載

  IMREAD_COLOR(>0):表示把原圖作為RGB圖像加載進來

namedWindow():創建一個OpenCV窗口,由OpenCV自動創建與釋放,不需要銷毀。

  WINDOW_AUTOSIZE:會自動根據圖像大小,顯示窗口的大小,不能人為改變窗口大小

  WINDOW_NORMAL:跟QT集成時候會使用,允許修改窗口大小

imshow():根據窗口名顯示圖像到指定的窗口上去,第一個參數是窗口名稱,第二個參數是Mat對象

2.圖片修改

cvtColor的功能是把圖像從一個彩色空間轉換到另一個彩色空間,有三個參數,第一個是加載的圖像源,第二個是轉換后的圖像,第三個表示轉換方法:

  方法有:

    CV_BGR2HLS、CV_BGR2GRAY等

用法:cvtColor(image, output_image, CV_BGR2GRAY);

#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>

using namespace cv;
using namespace std;

int main(int argc, char**argv) {
  cout << "Hello World" << endl;
  Mat image = imread("D:/Python/automotive/image/test.jpg");
  if (image.empty()) {
    cout << "Colud not load image..." << endl;
    return -1;
  }
  namedWindow("input image", WINDOW_AUTOSIZE);
  imshow("input image", image);

  namedWindow("output image", WINDOW_AUTOSIZE);
  Mat output_image;
  cvtColor(image, output_image, CV_BGR2GRAY);
  imshow("output image", output_image);
  waitKey(0);
  return 0;

}

 

3.圖片保存:

imwrite():

  保存圖片到指定目錄,只有8位、16位的PNG、JPG、Tiff文件格式而且是單通道或者三通道的BGR的圖像才可以通過這種方式保存,可以指定保存的格式為上面三種任意一種,只需在文件路徑上加.jpg   .png。

#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>

using namespace cv;
using namespace std;

int main(int argc, char**argv) {
  cout << "Hello World" << endl;
  Mat image = imread("D:/Python/automotive/image/test.jpg");
  if (image.empty()) {
    cout << "Colud not load image..." << endl;
    return -1;
  }
  namedWindow("input image", WINDOW_AUTOSIZE);
  imshow("input image", image);

  namedWindow("output image", WINDOW_AUTOSIZE);
  Mat output_image;
  cvtColor(image, output_image, CV_BGR2GRAY);
  imshow("output image", output_image);
  imwrite("D:/OpenCVtest/output_img/test.tif", output_image);
  waitKey(0);
  return 0;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM