没有合适的资源?快使用搜索试试~ 我知道了~
首页OpenCV常用的图像和矩阵操作总结
OpenCV常用的图像和矩阵操作总结
需积分: 50 806 浏览量
更新于2023-05-26
评论
收藏 156KB DOC 举报
总结了OpenCV总常用的图像和矩阵操作,并对相似的函数做了比较和区别。
资源详情
资源评论
资源推荐

OpenCv 常用图像和矩阵操作
目录
学习资料.............................................................................................................................................2
书籍.............................................................................................................................................2
网站:.........................................................................................................................................2
本地安装目录.............................................................................................................................2
图像 IplImage......................................................................................................................................3
Structure IplImage.......................................................................................................................3
图像的常用操作.........................................................................................................................4
图像载入函数.....................................................................................................................4
窗口定义函数.....................................................................................................................5
图像显示函数.....................................................................................................................5
图像保存函数.....................................................................................................................5
图像销毁函数.....................................................................................................................6
存取图像像素.....................................................................................................................6
矩阵 CvMat.......................................................................................................................................10
Struct CvMat.............................................................................................................................10
矩阵的创建和初始化..............................................................................................................11
释放矩阵...................................................................................................................................12
复制矩阵:..................................................................................................................................12
存取矩阵元素...........................................................................................................................12
简单的方法.......................................................................................................................12
麻烦的方法.......................................................................................................................13
恰当的方法.......................................................................................................................16
cvmGet()和 cvmSet()的局限............................................................................................17
矩阵/向量数学操作..................................................................................................................18
矩阵-矩阵操作:................................................................................................................18
按元素的矩阵操作:..........................................................................................................18
向量乘积:..........................................................................................................................18
单矩阵操作:......................................................................................................................19
非齐次线性系统求解:......................................................................................................19
特征值分析(针对对称矩阵):...........................................................................................19
奇异值分解 SVD:.............................................................................................................19
其他...................................................................................................................................................21
Shell 函数显示图片..................................................................................................................21
IplImage 到 cvMat 的转换.......................................................................................................21

学习资料
书籍
影印版
作者:
出版社:东南大学出版社
学习 OpenCV(中文版)
作者:
译者:于仕琪刘瑞祯
出版社:清华大学出版社
OpenCV 中文教程
作者:刘瑞祯于仕琪
网站:
! "#$%#&#%&#$%#'#(
)(' *+,,%'+'-+./%*
本地安装目录
在安装目录',0 下有各种学习资料
只用在本地安装目录下面就可以查询到大部分需要的信息,当然也可以直接百度,

图像 IplImage
Structure IplImage
! 中图像的结构体为 11*,位于头文件 " 中,11*结构体的定
义如下:
23 411*
5
678911* 大小9
1:89版本;,9
89大多数 <$= 函数支持 '+.或/个通道9
89被 忽略9
89像素的位深度,主要有以下支持格式:1<4:$<>?4@A
1<4:$<>?4@61<4:$<>?4'&A1<4:$<>?4'&61<4:$<>?4.+6
1<4:$<>?4.+B和 1<4:$<>?4&/B9
CD/E89被 忽略9
6FD/E89同上9
89,G交叉存取颜色通道'G分开的颜色通道
只有 !1* 可以创建交叉存取图像9
89图像原点位置:, 表示顶G左结构' 表示底G左结构9
89图像行排列方式/@,在被忽略,使用6代替9
89图像宽像素数9
89图像高像素数9
3 41H1989图像感兴趣区域,当该值非空时,
只对该区域进行处理9
3 411*9*H189在 中必须为 =A9
!9*189同上9
3 41>1291289同上9
*6789图像数据大小在交叉存取格式下 1*67;*GI9*G
I6),单位字节9
9*:89指向排列的图像数据9
689排列的图像行大小,以字节为单位9
CD/E89边际结束模式在被忽略9
D/E89同上9
9*:89指针指向一个不同的图像数据结构(不是必须排列的),
是为了纠正图像内存分配准备的9

J11*8J
11*8
主要的成员变量有
图像的通道数目,即灰度图像:;'8H 图像 ;.
每个像素值的数据类型和所占的存储空间
origin 变量可以有两种取值:IPL_ORIGIN_TL 或者 IPL_ORIGIN_BL,分别设置坐标原点
的位置于图像的左上角或者左下角。在计算机视觉领域,一个重要的错误来源就是原点位
置的定义不统一。具体而言,图像的来源、操作系统、编解码器和存储格式等因素都可以
影响图像坐标原点的选取。举例来说,你或许认为自己正在从图像上面的脸部附近取样,
但实际上却在图像下方的裙子附近取样。避免此类现象发生的最好办法是在最开始的时候
检查一下系统,在所操作的图像块的地方画点东西试试。
多 通 道 的 数 据 存 储 方 式 , ;, 是 交 叉 通 道 存 储 方 式 , 即
HHHH 的 方 式 存 储 ; ;' 是 采 用 独 立 通 道 方 式 存 储 , 即
HHHHHHH。。。, KK一般都是 HHH 的这种交叉存储
方式, !1* 生成的图像也是这种存储方式。
图像的宽度
图像的高度
*:图像的像素矩阵
6每一行像素所占的字节数目 参数 6 包括相邻行的同列点之间的字
节数。仅凭变量 是不能计算这个值的,因为为了处理过程更高效每行都会用固定的
字节数来对齐;因此在第 行末和第 L' 行开始处可能会有些冗于字节。参数 *:
包含一个指向第一行图像数据的指针。如果图像中有些独立的平面 如当 ;
1<4:>4H:$H4<=$那么把它们作为单独的图像连续摆放,总行数为 和
的乘积。但通常情况下,它们是交错的,使得行数等于高度,而且每一行都有
序地包含交错的通道。
H1GG感兴趣的区域H1,实际上它是另一个 1<1<<结构 1H1 的实例。1H1 包含
"22,22,, 和 成员变量,其中 1 代表 2感兴
趣的通道。H1 的思想是:一旦设定 H1,通常作用于整幅图像的函数便会只对 H1 所
表示的子图像进行操作。如果 11* 变量中设置了 H1,则所有的 函数就会使
用该 H1 变量。如果 1 被设置成非 , 值,则对该图像的操作就只作用于被指定的通道上
了。不幸的是,许多 函数都忽略参数 1。
图像的常用操作
图像载入函数
函数 !1* 载入指定图像文件,并返回指向该文件的 11* 指针。函数支
持 )*、M、、22 等格式的图像。其函数原型如下:

11*9 !1* 92* 8
其中,2*是待载入图像的名称,包括图像的扩展名; 是一个辅助参数项,
可选正数、零和负数三种值,正数表示作为三通道图像载入,零表示该图像作为单通道图
像,负数表示载入图像的通道数由图像文件自身决定。
窗口定义函数
函数 !=*N 定义一个窗口,用于显示图像。其函数原型如下:
!=*N 9*328
其中,* 是窗口名,2 是窗口属性指标值,可以选择
4N1=:N4A>61O$ 和 , 两种值。4N1=:N4A>61O$ 表示窗口尺寸与图像
原始尺寸相同,, 表示以固定的窗口尺寸显示图像。
图像显示函数
函数 !61* 是在指定的窗口中显示图像,其函数原型如下:
! !61* 9* !9*8
其中,* 是窗口名称,* 是图像类型指针,一般是 11* 指针。
图像保存函数
函数 !6!1* 以指定的文件名保存 11* 类型的指针变量,其函数原型如下:
!6!1* 92* !9*8
其中,2* 是图像保存路径和名称,* 是 11* 指针变量。
Trick:
如果要保存一组图像到 3 文件夹图像个数为 保存名称按照一定的序号递增,假
设为 *>*,M,*>*'M,*>*+M,*>*.M,…*>*M,则
操作为:
92D.,E8
2;,8P8LL
5
22Q3*>*#MQ8
!6!1*2*8
J
借用 2 函数即可以完成依次命名的功能。
剩余20页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0