Opencv开发笔记三:色彩空间转换

一、相关API介绍

cv::cvtColor 是色彩空间转换函数,cvtColor的功能是把图像从一个彩色空间转换到另外一个色彩空间,

有三个参数,第一个参数表示源图像、第二参数表示色彩空间转换之后的图像、第三个参数表示源和目标色彩空间如:

COLOR_BGR2HLS 、COLOR_BGR2GRAY,COLOR_BGR2HSV

void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 )

param1:src 原图像

param2:dst 目标图像

param3:转换编码 COLOR_BGR2HLS 、COLOR_BGR2GRAY,COLOR_BGR2HSV

 

cv::namedWindos

namedWindos功能是创建一个OpenCV窗口,它是由OpenCV自动创建与释放,你无需取销毁它。

void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
WINDOW_AUTOIZ由下面结构体组成

enum { WINDOW_NORMAL     = 0x00000000, // the user can resize the window (no constraint) / also use to switch a fullscreen window to a normal size
       WINDOW_AUTOSIZE   = 0x00000001, // the user cannot resize the window, the size is constrainted by the image displayed
       WINDOW_OPENGL     = 0x00001000, // window with opengl support

       WINDOW_FULLSCREEN = 1,          // change the window to fullscreen
       WINDOW_FREERATIO  = 0x00000100, // the image expends as much as it can (no ratio constraint)
       WINDOW_KEEPRATIO  = 0x00000000  // the ratio of the image is respected
     };

 

二、实现程序

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char **argv){
	Mat src;  //定义一个存放图片数据的数组
	src = imread("./1.png", 1); // Loads a multi-page image from a file convert to gray
	if (src.empty())  // 判断图片是否存放在src中
	{
		cout << "can not read an image" << endl;
		return -1;
	}
	namedWindow("input image", CV_WINDOW_AUTOSIZE); // 给窗口命名: 1 窗口名称 2 窗口显示方式
	imshow("input image", src); // cv库下的imshow方法,来显示图片:1 窗口名称 2 src

	//-----------------
	Mat dst_gray,dst_hsv, dst_hls, dst_rgb, dst_yuv;
	cvtColor(src, dst_gray, CV_BGR2GRAY);
	cvtColor(src, dst_hsv, CV_BGR2HSV);
	cvtColor(src, dst_hls, CV_BGR2HLS);
	cvtColor(src, dst_rgb, CV_BGR2RGB);
	cvtColor(src, dst_yuv, CV_BGR2YUV);

	imshow("output dst_gray", dst_gray);
	imshow("output dst_hsv", dst_hsv);
	imshow("output dst_rgb", dst_rgb);
	imshow("output dst_yuv", dst_yuv);
	
	//-----------------

	waitKey(0);        // 一直显示图片,直到检测到按键按下停止显示:waitKey(int delay = 0) delay延时的时间

	return 0;
}

三、实验结果

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值