0
点赞
收藏
分享

微信扫一扫

OpenCV + CPP 系列(二)图像的读取与保存


图像的读取与保存

使用了颜色空间转换函数​​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;
}

OpenCV + CPP 系列(二)图像的读取与保存_后缀


举报

相关推荐

0 条评论