第二节课
main.c主函数
#include <opencv2/opencv.hpp>//opencv的头文件
#include<iostream>
#include<quickopencv.h>
using namespace cv;
using namespace std;
int main(int argc,char** argv)
{
Mat img = imread("E:/images/hist_01.jpg");//imread函数读取一张图片 Mat定义的img变量相当一个矩阵用来存储图片数据
//(这里的Mat可以指定存储的数据类型、行列数,以及每个元素中的数值个数(通道数)等等。)
if (img.empty())
{
printf("could not load image ...\n");
return -1;//不正常返回
}
//namedWindow("输入窗口",WINDOW_FREERATIO);//当图片太大时可以nameWindow函数创建窗口可以自由的调节图片大小(必须和imshow函数的窗口名称一致)
imshow("输入窗口",img); //窗口名称,将图片进行显示
QuickDemo qd; // QuickDemo类
qd.colorSpace_Demo(img);
waitKey(0); //阻塞程序执行到这里后停止,会一直显示图片
destroyAllWindows();
return 0;
}
quickdemo.cpp主函数
#include<quickopencv.h>
void QuickDemo::colorSpace_Demo(Mat &image) {
Mat gray, hsv;
cvtColor(image,hsv,COLOR_BGR2HSV);//利用cvtColor函数将图片转化成HSV
cvtColor(image, gray, COLOR_BGR2GRAY);//利用cvtColor函数将图片转化成灰度图像
imshow("HSV",hsv);
imshow("灰度",gray);
imwrite("E:/hsv.png",hsv);//将图片保存在E盘
}
quickdemo.h主函数
#pragma once
#include <opencv2\opencv.hpp>
using namespace cv;
class QuickDemo //定义一个QuickDemo的类
{
public:
void colorSpace_Demo(Mat &image);//QuickDemo类的对象(函数colorlSpace_Demo)
};
效果图
(1) 今天的主要学习内容:函数imwrite用来存储图片,函数cvtColorl (图像色彩空间的转化),其中包括COLOR_BGR2HSV函数(利用cvtColor函数将图片转化成HSV), COLOR_BGR2GRAY函数(利用cvtColor函数将图片转化成灰度图像)。
(2)HSV(H:色调 S:饱和度 V:明度)通过改变这三个参数可以改变图片的属性。
(3)本次可还学到了C++语言中的类和对象,我们都知道 C++是面向对象的编程语言,其中类和对象是很重要的。