opencv第三节色彩空间转换

知识点:

1:色彩空间转换函数-cvtcolor

COLOR_BGR2GRAY=6彩色到灰度

COLOR_GRAY2BGR=8灰度到彩色

COLOR_BGR2HSV=40BGR到HSV

COLOR_HSV2BGR=54HSV到BGR

2:图像保存-imwrite

第一个参数是图像保存的路径

第二个是图像内存对象

这是第一节课的程序根据这个程序进行下列操作

#include <opencv2/opencv.hpp>
#include <iostream>--从键盘中读取数据,输入输出对象
#include"quickopencv.h"
using namespace cv;
--引入openCV的命名空间CV,在后续代码中可以直接使用OPENCV中的类,无需调用CV::
using namespace std;--引入C++的命名空间std,在后续代码中可以直接使用标准库中的类,无需带哦用std::


int main(int argc, char** argv) {
    Mat src = imread("C:/images/123.jpg");
    if (src.empty()) {
        printf("could not load image....");
        return -1;
    }
    //namedWindow("输入图像", WINDOW_FREERATIO);
    imshow("输入窗口", src);
    QUickdemo qd;--创建一个名为QUickdemo的类的对象,对象名字为qd,后续代码可以用qd来调用quickdemo中定义的函数。
    qd.colorSpace_Demo(src);--这行代码的意思是调用名为qd的对象的colorSpace_Demo方法,并将src作为参数传递给这个方法。
    waitKey(0);
    destroyAllWindows();
        return 0;
}

这是简单读取图像

首先加载一个头文件

代码解析

#pragma once

#include<opencv2/opencv.hpp>
using Namespace cv;--类中的命名空间,避免命名冲突,后续可以直接在后续代码中使用该命名空间
class QUickdemo--声明一个名字为QUickdemo的类,包含了属性和方法,内部包含具体作用


在一个使用了特定命名空间的程序中定义了一个为quickdemo的类
{
public:--访问修饰符,其他类和函数可以直接访问里面的公共成员变量
    void colorSpace_Demo(Mat& image);--无返回值类型,定义一个colorSpace_Demo的方法

};

之后加载一个新的项目

代码解析

#include"quickopencv.h"
void QUickdemo::colorSpace_Demo(Mat& image)
{
    Mat gray, hsv;--图像MAt类型中声明了两个变量,一个gray,另一个hsv。
    cvtColor(image, hsv, COLOR_BGR2HSV);--色彩空间转换函数-cvtcolor将hsv图片转化为HSV格式和BGR格式,其中格式为void cv::cvtColor(InputArray src, OutputArray dst, int code, int dstCn = 0 );

src为输入图像,dst为输出图像,code为颜色空间转换;
    cvtColor(image, gray, COLOR_BGR2GRAY);
    imshow("HsV", hsv);
    imshow("灰度", gray);
    imwrite("C:/images/hsv.png", hsv);--保存图片的路径和所保存的图片

    imwrite("C:/images/grav.png", gray);

后面不通过头文件与源文件也可以实现

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;


int main(int argc, char** argv) {
    Mat src = imread("C:/images/123.jpg");
    if (src.empty()) {
        printf("could not load image....");
        return -1;
    }
    //namedWindow("输入图像", WINDOW_FREERATIO);
    Mat hsv, gray;
    imshow("输入窗口", src);
    cvtColor(src, hsv, COLOR_BGR2HSV);
    cvtColor(src, gray, COLOR_BGR2GRAY);
    imshow("HsV", hsv);
    imshow("灰度", gray);
    waitKey(0);
    destroyAllWindows();
        return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值