OpenCV的一些基础知识

本文介绍了OpenCV的基础知识,包括OpenCV的框架结构,详细解释了main函数中的argc和argv参数的作用,特别是如何在Visual Studio中设置命令参数。接着,深入探讨了OpenCV中的核心数据结构Mat,阐述了Mat由矩阵头和像素值指针组成,以及其在内存管理上的特点。

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

一、OpenCV框架

链接一个博文:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析

二、main函数中的argc和argv

argc和argv这两个参数一般在    用命令行编译程序     时使用。

UNIX和LINUX标准主函数main的参数变量:(int argc, char *argv[], char **env),有些编译器允许将main()的返回类型声明为void,已经不再是合法的C++了。其中,

第一个参数,int类型的argc,用来统计程序运行时发送给main函数的命令行参数的个数;

第二个参数,char *类型的argv[];为字符串数组,用来存放指向字符串参数的指针数组,每一个元素指向一个参数。各含义如下:

argv[0]指向程序运行的全路径名

argv[1]指向在DOS命令行中执行程序名后的第一个字符串

argv[2]指向在DOS命令行中执行程序名后的第二个字符串

argv[3]指向在DOS命令行中执行程序名后的第三个字符串

argv[argc]为NULL

Vsiual Studio中:argv[1]对应的是【项目属性】->【配置属性】->【调试】->【命令参数】中的字符串,字符串用引号,如果有多个字符串则用空格隔开即可,如:"1.jpg" "2.jpg"

第三个参数,char**类型的env,为字符串数组。env[]的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量,value为ENVVAR的对应值。该参数在OpenCV里很少使用。

三、Mat

Mat本质上是由两个数据部分组成的类: (包含信息有矩阵的大小,用于存储的方法,矩阵存储的地址等) 的矩阵头和一个指针,指向包含了像素值的矩阵(可根据选择用于存储的方法采用任何维度存储数据)。矩阵头部的大小是恒定的。然而,矩阵本身的大小因图像的不同而不同,通常是较大的数量级。因此,当你在您的程序中传递图像并在有些时候创建图像副本您需要花费很大的代价生成图像矩阵本身,而不是图像的头部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值