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;
}