Matlab到OpenCV转换的示例

时间:2013-09-26 07:19:03

标签: c++ matlab opencv

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

几乎总有办法在OpenCV中执行此操作并使用适当的功能。然而,它并不总是很容易找到。

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

我使用Matlab函数作为标题并从Matlab帮助中附加其描述。之后,我们赞赏OpenCV示例或解决方案链接。

1 个答案:

答案 0 :(得分: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 Docs

查找

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

Similar to Matlab's find

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])。

Similar to Conv2

于imagesc

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

SO Imagesc

Imfilter

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

SO Imfilter

Imregionalmax

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

SO Imregionalmax

Ordfilt2

2-D顺序统计过滤。 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::solve