图像的读取与保存
使用了颜色空间转换函数cvtColor
: COLOR_BGR2HSV, COLOR_BGR2GRAY
图像读取函数签名:
Mat imread(
const String& filename, 路径&文件名 &后缀。
int flags = IMREAD_COLOR 读取图像模式
)
读取图像模式 flags 为 enum ImreadModes 这里简单举例常用模式:
- IMREAD_UNCHANGED = -1, 不做改变
- IMREAD_GRAYSCALE = 0, 以读入并转成灰度图
- IMREAD_COLOR = 1, 一般BGR图像读取
文件保存:imwrite() 关于详情请查看。 imwrite函数签名:
bool imwrite(
const String& filename, 路径&文件名 &后缀。
InputArray img, 保存图像矩阵
const std::vector& params = std::vector() 可选保存参数
);
新建了头文件 quick_opencv.h
:用于声明类与公共函数
#pragma
#include <opencv2\opencv.hpp>
using namespace cv;
class QuickDemo {
public:
void colorSpace_Demo(Mat& image);
};
新建了源文件 quick_demo.cpp
:实现类与公共函数
#include <quick_opencv.h>
void QuickDemo::colorSpace_Demo(Mat& image) {
Mat gray, hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
cvtColor(image, gray, COLOR_BGR2GRAY);
imshow("hsv",hsv);
imshow("gray", gray);
imwrite("D:\\Desktop\\hsv_pandas.png", hsv);
imwrite("D:\\Desktop\\gray_pandas.png", gray);
}
仍然在主函数调用该类的公共成员函数
#include <opencv2\opencv.hpp>
#include <quick_opencv.h>
#include <iostream>
using namespace cv;
int main(int argc, char** argv) {
Mat src = imread("D:\\Desktop\\pandas.jpg");
if (src.empty()) {
printf("Could not load images...\n");
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
QuickDemo qk; //实例化
qk.colorSpace_Demo(src); //调用
waitKey(0);
destroyAllWindows();
return 0;
}