Opencv——颜色模型+通道分离与合并

视频加载/摄像头调用

VideoCapture允许一开始定义一个空的对象

VideoCapture video

复制代码
VideoCapture(const String &filename,int apiPreference=CAP_ANY)
filename:读取的视频文件或者图像序列名称
apiPreference:读取数据时设置的属性,例如编码格式、是否调用OpenNi等

使用方法:video.get(CAP_PROP_FPS) 返回值即为视频的帧数

视频文件保存

复制代码
VideoWriter(const String& filename,
					int fourcc,
					double fps,
					Size frameSize
					bool isColor = true)
  • filename:保存视频的地址和文件名,包含视频格式
  • fourcc:压缩帧的4字符编码器代码,详细参数在表2-7给出
  • fps:保存视频的帧率,即视频中每秒图像的张数
  • isColor:保存视频是否为彩色视频

图像颜色空间介绍

RGB颜色模型


图像数据类型间的相互转换

复制代码
converTo(OutputArray m,int rtype,double alpha=1,double beta=0)
m:输出图像
rtype:转换后数据类型
alpha:缩放系数
beta:平移系数
示例:
a.convertTo(b,CV_32F,1/225.0,0)

HSV颜色模型

Gray颜色模型

彩色图像可以转换为灰度图像

多通道分离与合并

多通道分离

复制代码
split(InputArray m,OutputArrayOfArrays mv)
m:待分离的多通道图像
mv:分离后的单通道图像,为向量vector形式

	Mat imgs[3];
	Mat img = imread("C:/Users/86159/Desktop/1.jpg",1);
	split(img, imgs);
	Mat img0, img1, img2;
	img0 = imgs[0];
	img1 = imgs[1];
	img2 = imgs[2];
	cin.get();

多通道合并

复制代码
merge(InputArrayOfArrays mv,OutputArray dst)
mv:需要合并的图像向量vector,其中每个图像必须拥有相同的尺寸和数据类型
dst:合并后输出的图像,通道数等于所有输入图像的通道数综合


	Mat zero = Mat::zeros(Size(img.cols,img.rows),CV_8UC1);
	 
	// 合并后的图像第二三个通道都是0
	vector<Mat> imgsV;
	imgsV.push_back(img0);
	imgsV.push_back(zero);
	imgsV.push_back(zero);

	Mat imgsVH;
	merge(imgsV, imgsVH);
相关推荐
Sherry Wangs15 小时前
显卡算力过高导致PyTorch不兼容的救赎指南
人工智能·pytorch·显卡
Apache Flink16 小时前
阿里云、Ververica、Confluent、Linkedin携手推进流式创新,共筑智能体AI未来
人工智能·阿里云·云计算
Elastic 中国社区官方博客16 小时前
AI Agent 评估:Elastic 如何测试代理框架
大数据·人工智能·elasticsearch·搜索引擎
中科米堆16 小时前
中科米堆CASAIM自动化三维测量实现注塑模具快速尺寸测量
运维·人工智能·自动化
CoookeCola16 小时前
Google Landmarks Dataset v2 (GLDv2):面向实例级识别与检索的500万图像,200k+类别大规模地标识别基准
图像处理·人工智能·学习·目标检测·计算机视觉·视觉检测
JANGHIGH16 小时前
YOLO系列——OpenCV DNN模块在YOLOv11检测物体时输出的边界框坐标问题
opencv·yolo·dnn
云青黛16 小时前
轮廓系数(一个异型簇的分类标准)
人工智能·算法·机器学习
isyoungboy16 小时前
PIL与OpenCV双线性插值实现差异导致模型精度不够踩坑
人工智能·opencv·计算机视觉
云青黛16 小时前
肘部法找k
人工智能·算法·机器学习·聚类
IT_陈寒16 小时前
Java性能调优:从GC日志分析到实战优化的5个关键技巧,让你的应用快如闪电!
前端·人工智能·后端