opencv

opencv画图参考 : C++下OpenCV学习笔记----基本图形的绘制_使用c++实验图形-CSDN博客

OpenCV C/C++图像的放缩_c++的opencv中如何实现图像的放大和缩小-CSDN博客

【OpenCV】OpenCV常用函数(C++版)_c++ opencv 函数-CSDN博客

Opencv中BGR、YUV、YUV_I420\NV12分析_yuvi420-CSDN博客

一、缩放函数

cpp 复制代码
	void resize( InputArray src, 
		     OutputArray dst,
                     Size dsize, 
                     double fx = 0, 
                     double fy = 0,
                     int interpolation = INTER_LINEAR );

第一个参数:输入图像

第二个参数:输出图像

第三个参数输出图像的尺寸,如果是0,则有

dsize=Size(round(fxsrc.cols),round(fysrc,rows))计算得出

第四个参数:水平轴的缩放系数,默认为0

第五个参数:y轴撒谎能够的缩放系数,默认为0

第六个参数:插值方法:默认为INTER_LINEAR线性插值

INTER_NN - 最近邻插值,

INTER_LINEAR - 双线性插值 (缺省使用)

INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法...

INTER_CUBIC - 立方插值

图像色彩模式

位图模式

位图模式是图像中最基本的格式,图像只有黑色和白色像素,是色彩模式中占有空间最小的,同样也叫做黑白图,它包含的信息量最少,无法包含图像中的细节,相当于只有0或者1一副彩色图如果要转换成黑白模式,则一般不能直接转换,需要首先将图像转换成灰度模式

灰度模式

灰度模式即使用单一色调来表示图像,与位图模式不同,不像位图只有0和1,使用256级的灰度来表示图像,一个像素相当于占用8为一个字节,每个像素值使用0到255的亮度值代表,其中0为黑色,255为白色,相当于从黑->灰->白的过度,通常我们所说的黑白照片就是这种模式,与位图模式相比,能表现出一定的细节,占用空间也比位图模式较大

RGB模式

RGB模式为我们经常见到的,被称为真色彩。RGB模式的图像有3个颜色通道,分布为红(Red),绿(Green)和蓝(Bule),每个都占用8位一个字节来表示颜色信息,这样每个颜色的取值范围为0~255,那么就三种颜色就可以有多种组合,当三种基色的值相等是,表现出为灰色,三种颜色都为255即为白色,三种颜色都为0,即为黑色RGB模式的图像占用空间要比位图,灰度图都要大,但表现出的细节更加明显

CMYK模式

CMYK模式被称为印刷色彩模式,主要是来源于印刷行业,以打印油墨在纸张上的光线吸收特性为基础,与RGB类似,也是使用三种颜色,分别为青色(Cyan),品红色(Magenta),黄色(Yellow),以及黑色(Black) 与RGB不同的是:RGB模式依靠的是自身发光的色彩模式,而CMYK是一种依靠反光的色彩模式。

HSB模式

是根据日常生活中人眼的视觉对色彩的观察得而制定的一套色彩模式,最接近与人类对色彩的辨认的思考方式,所有的颜色都是用色彩三属性来描述

H:(色相):是指从物体反射或透过物体传播的颜色

S:(饱和度):是指颜色的强度或纯度,表示色相中灰色成分所占的比例

B:(亮度):是指颜色对相对明暗程度,通常 100%定义为白色;0%为黑色

除了上述以上之外,还有索引模式,多通道模式等等不再介绍

YUV格式

除了上述图像模式之外,由于历史原因大部分摄像头输入的图片格式都是YUV格式,开始主要用于电视系统以及模拟视频领域。YUV,分为三个分量,"Y"表示明亮度(Luminance或Luma),也就是灰度值;而"U"和"V" 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。如果没用UV信息,只有Y信息,也可以进行成像不过只是黑白的,这样就能很好解决彩色电视与黑白电视的兼容问题,与RGB相比,YUV占用带宽较少,目前摄像头输出格式普遍采用YUV格式。

COLOR_BRG2RBG:

转换gif图片,但是处理完变成黑白图片。

COLOR_BRG2YUV_I420:

I420也是YUV420编码格式的一种,由于android手机厂商的原因,摄像头采集到的数据永远都是经过NV21编码的数据,但是对于这种数据不能够显示在苹果或windows平台,那么需要对这个编码格式的数据需要重新编码,其中I420这种编码格式,所有的厂商都是适配的。

NV12:

NV12图像格式属于YUV颜色空间中的YUV420SP格式,每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序。

NV21是一种用于Android系统的图像颜色编码格式。它使用YUV 4:2:0的采样方式,即垂直方向上每两个像素采样一次,水平方向上每个像素采样两次。NV21的Y分量是亮度信息,V和U分量是色度信息(分别代表饱和度和色调)。这种格式主要应用于前置摄像头和Android的Camera API。

相关推荐
一水鉴天4 分钟前
智能工厂的软件设计 “程序program”表达式,即 接口模型的代理模式表达式
开发语言·人工智能·中间件·代理模式
asd1_1212822 分钟前
计算机视觉学习路线
计算机视觉
Hiweir ·41 分钟前
机器翻译之创建Seq2Seq的编码器、解码器
人工智能·pytorch·python·rnn·深度学习·算法·lstm
Element_南笙44 分钟前
数据结构_1、基本概念
数据结构·人工智能
FutureUniant1 小时前
GitHub每日最火火火项目(9.21)
人工智能·计算机视觉·ai·github·音视频
菜♕卷1 小时前
深度学习-03 Pytorch
人工智能·pytorch·深度学习
明明真系叻1 小时前
第十二周:机器学习笔记
人工智能·机器学习
AI王也2 小时前
ChatGPT搭上langchain的知识库RAG应用,效果超预期
人工智能·chatgpt·langchain·aigc
沧穹科技2 小时前
音频北斗定位系统有什么用?
人工智能
Bruce小鬼3 小时前
最新版本TensorFlow训练模型TinyML部署到ESP32入门实操
人工智能·python·tensorflow