Matlab到OpenCV转换的示例

FSa*_*tto 12 c++ matlab opencv

我不时要将一些Matlab代码移植到OpenCV.

几乎总是有一种方法可以在OpenCV中实现它.然而,它并不总是很容易找到.

因此,我想开始这个总结,以找到并收集Matlab和OpenCV之间的一些等价物.

我使用Matlab函数作为标题并从Matlab帮助中附加其描述.然后,感谢OpenCV示例或解决方案的链接.

FSa*_*tto 19

Repmat

复制并平铺数组.B = repmat(A,M,N)创建一个大的矩阵B,由A的副本的M-by-N平铺组成.B的大小是[size(A,1)*M,size(A,2) ]*N.语句repmat(A,N)创建N-by-N平铺.

B =重复(A,M,N)

OpenCV文档

查找非零元素的索引.I = find(X)返回对应于数组X的非零项的线性索引.X可以是逻辑表达式.使用IND2SUB(SIZE(X),I)从线性索引I计算多个下标.

类似于Matlab的发现

CONV2

二维卷积.C = conv2(A,B)执行矩阵A和B的2-D卷积.如果[ma,na] = size(A),[mb,nb] = size(B),[mc,nc] =大小(C),则mc = max([ma + mb-1,ma,mb]),nc = max([na + nb-1,na,nb]).

与Conv2相似

于imagesc

缩放数据并显示为图像.imagesc(...)与IMAGE(...)相同,只是缩放数据以使用完整的色彩映射.

SO Imagesc

Imfilter

多维图像的ND滤波.B = imfilter(A,H)用多维滤波器H对多维数组A进行滤波.A可以是逻辑的,也可以是任何类和维的非稀疏数值数组.结果B具有与A相同的大小和类别.

所以Imfilter

Imregionalmax

区域最大值.BW = imregionalmax(I)计算I的区域最大值.imregionalmax返回二进制图像BW,其大小与I相同,用于标识区域最大值在I中的位置.在BW中,设置为1的像素标识区域最大值; 所有其他像素都设置为0.

所以Imregionalmax

Ordfilt2

二维顺序统计过滤.B = ordfilt2(A,ORDER,DOMAIN)用DOMAIN中非零元素指定的有序邻居集中的ORDER-th元素替换A中的每个元素.

SO Ordfilt2

Roipoly

选择感兴趣的多边形区域.使用roipoly在图像中选择感兴趣的多边形区域.roipoly返回一个二进制图像,您可以将其用作屏蔽过滤的掩码.

SO Roipoly

梯度

近似梯度.[FX,FY] =梯度(F)返回矩阵F的数值梯度.FX对应于dF/dx,x(水平)方向的差异.FY对应于dF/dy,y(垂直)方向的差异.假定每个方向上的点之间的间隔为1.当F是矢量时,DF =梯度(F)是1-D梯度.

SO Gradient

Sub2Ind

多个下标的线性索引.sub2ind用于确定对应于给定下标值集的等效单个索引.

SO sub2ind

反斜杠运算符或mldivide

解决了线性方程组A*x = B.矩阵A和B必须具有相同的行数.

CV ::解决