001-002 图像读取与显示,色彩空间转换

#quickopencv.h

#pragma once

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

class QuickDemo
{
public:
	void colorSpace_Demo(Mat& image);		
};

Mat对象:OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分。

#quickdemo.cpp

#include "quickopencv.h"

void QuickDemo::colorSpace_Demo(Mat& image)
{
	Mat gray, hsv;
	cvtColor(image,hsv,COLOR_BGR2HSV);		//image->BGR  TO  HSV->hsv
	//H 0~180,S,V
	cvtColor(image, gray, COLOR_BGR2GRAY);

	namedWindow("HSV", WINDOW_FREERATIO);	//自由比例,创建一个“输入窗口”
	imshow("HSV", hsv);

	namedWindow("gray", WINDOW_FREERATIO);	//自由比例,创建一个“输入窗口”
	imshow("gray", gray);

	imwrite("hsv.png", hsv);
	imwrite("gray.png", gray);
}

cvtColor(Mat src, Mat dst, int code)

函数是一个颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间转换。也可以转换为灰度图。

src表示来源的矩阵
dst表示目的地的矩阵
code表示转换类型的整数代码

namedWindow(winname, flags=None)

winname:窗口名字;

flags:窗口标志。标志参数有以下几种:

标志参数作用
WINDOW_NORMAL显示图像后,允许用户随意调整窗口大小
WINDOW_AUTOSIZE根据图像大小显示窗口,不允许用户调整大小
WINDOW_FREERATIO窗口大小自适应比例
WINDOW_KEEPRATIO保持图像的比例

CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,const std::vector````& params = std::vector````());

const String& filename表示需要写入的文件名,必须要加上后缀,比如“123.png”
nputArray img表示Mat类型的图像数据
const std::vector& params表示为特定格式保存的参数编码,它有一个默认值std::vector< int >(),所以一般情况下不用写
#opencv01.cpp

#include<opencv2/opencv.hpp>
#include<iostream>
#include "quickopencv.h"

using namespace std;
using namespace cv;


int main()
{
	Mat src = imread("2.jpg");
	if (src.empty())
	{
		cout << "can't open" << endl;
		return -1;
	}
	namedWindow("输入窗口", WINDOW_FREERATIO);	//自由比例,创建一个“输入窗口”
	imshow("输入窗口", src);						//窗口名称,显示对象,必须是8位

	QuickDemo qd;
	qd.colorSpace_Demo(src);

	waitKey(0);						//程序停止,图片一直显示
	destroyAllWindows();			//销毁窗口

	return 0;
}

Mat imread( const String& filename, int flags );

第一个参数 filename: 表示图像的路径。

第二个参数 flags:表示读取图像的方式。

IMREAD_UNCHANGED = -1,表示读取原图, 不进行任何改变

IMREAD_GRAYSCALE = 0,表示以灰度图方式读取原图

IMREAD_COLOR = 1,表示以RGB方式读取原图

waitKey(x);

当x>0,waitkey返回在x时间内按下的按键的ASCwaitkeyZII值,否则返回-1;

当x=0,waitkey表示永久等待,直到有键按下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可可西里啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值