opencv:图像色彩空间转换(二)


一、图像色彩空间

空间解释优缺点
RGBRGB色彩空间由红绿蓝三原色的色度定义,借此可以定义出相应的色三角,生成其它颜色
YUVY:表示明度(luminance),也就是灰度值;U/V:表示色度(chrominance),作用是描述影像色彩及饱和度。用于指定像素的颜色,Y信息和UV信息是分离的,没有UV信息也能显示完整的图像,只不过是黑白的,这样的设计很好解决了彩色电视和黑白电视的兼容问题空间占用少:RGB24一帧的大小size=width×heigth×3 Byte;RGB32一帧的大小size=width×heigth×4 Byte;YUV420一帧的大小size=width×heigth×1.5 Byte
HSBH:色相,色彩的相貌和特征,如:红,橙,黄等;S:纯度,指色彩的鲜艳程度,也叫饱和度,原色是纯度最高的色彩;B:明度,指色彩的亮度或者明度;
HSLH:色相,色彩的相貌和特征,如:红,橙,黄等;S:纯度,指色彩的鲜艳程度,也叫饱和度,原色是纯度最高的色彩;L:亮度
HSVH:色调,用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;S:饱和度,原色是纯度最高的色彩;V:明度,明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白);

二、imwrite:保存图片

实例分析

using namespace std;
using namespace cv;

class QuickDemo 
{
public:
	void ColorSpace_Demo(Mat& image) 
	{
		Mat gray_image, hsv_image;
		cvtColor(image, hsv_image, COLOR_BGR2HSV);
		cvtColor(image, gray_image, COLOR_BGR2GRAY);
		imshow("HSV", hsv_image);
		imshow("GRAY", gray_image);
		waitKey(0);
		destroyWindow("show");
		imwrite("data/hsv_image.bmp", hsv_image);
		imwrite("data/gray_image.bmp", gray_image);
	}
};

int main()
{
	Mat src = imread("data/right.bmp"); // 加载任意深度
	// 判断图片是否加载成功
	if (src.empty())
	{
		cout << "load image error !" << endl;
	}

	QuickDemo qd;
	qd.ColorSpace_Demo(src);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值