OpenCV学习--数据结构与基本绘图

本文深入探讨OpenCV中基础图像容器Mat的使用,包括其内存管理机制和如何通过引用计数减少复制开销。此外,文章还介绍了常用数据结构如Point、Scalar、Size和Rect,以及关键函数如cvtColor用于颜色空间转换。最后,通过实例展示了如何利用这些工具进行基本的图像绘制,如绘制直线、椭圆、矩形和圆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础图像容器Mat

OpenCV编程入门
为解决复制开销大的问题,OpenCV引用计数机制。其思路是让每个Mat对象有自己的信息头,但共享同一个举证。通过矩阵指针指向同一地址,拷贝构造函数只复制信息头与矩阵指针,而不复制矩阵。

注:由于多个对象都指向同一个也是唯一一个矩阵,通过任一对象对矩阵修改也会影响替他对象。同时也可以创建只引用部分数据的信息头,比如创建感兴趣区域(ROI)。Mat D(A, Rect(10,10,100,100))。如果复制举证本身,则使用函数clone和copyTo。
可总结为:
在这里插入图片描述
二、常用的数据结构和函数
点的表示:Point类,表示了二维坐标系下的点
颜色的表示:Scalar类,如Scalar(a, b, c)则定义的RGB颜色值为:红色分量的c,绿色b,蓝色a
尺寸的表示:Size类
矩形的表示:Rect类

函数:
1.颜色空间转换:cvtColor,实现RGB颜色向HSV、HSI等颜色空间的转换,也可以转换为灰度图像。
dst = cv.cvtColor( src, code[, dst[, dstCn]] ) (原图像,输出图像,color转化代码,输出通道)

src: 输入图像即要进行颜色空间变换的原图像,可以是Mat类
dst: 输出图像即进行颜色空间变换后存储图像,也可以Mat类
code: 转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片,后面会详细将
dstCn = 0: 目标图像通道数,如果取值为0,则由src和code决定
在这里插入图片描述
OpenCV还包含许多函数,之后用到什么函数在详细解释。

三、基本图像绘制
本节主要学习用point定义2D点,如何使用Scalar表示颜色。
基本常用函数为:
直线:line
椭圆:ellipse
矩形:rectangle
圆:circle
多边形:fillPoly

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值