Matlab 到 Opencv 的转换问题

Posted

技术标签:

【中文标题】Matlab 到 Opencv 的转换问题【英文标题】:Matlab to Opencv converion issue 【发布时间】:2016-10-17 11:42:13 【问题描述】:

AMx1的逻辑矩阵

A = (DAL(:,K+1) == i);

如何将其转换为 C++?

【问题讨论】:

【参考方案1】:
Mat1b A = DAL.col(K) == i;

DAL 是一个矩阵(double,因为 Matlab 默认使用双精度数)MxN

Mat1d DAL = ... // MxN matrix

要提取 K 列(而不是像 Matlab 中的 K+1,因为 Matlab 是基于 1 的,而 C++ 是基于 0),您可以使用 col 运算符:

int K = ...
Mat1d columnK = DAL.col(K);

然后您可以创建一个逻辑矩阵 A(在 OpenCV 中,逻辑矩阵是 uchar 类型的矩阵,其值可以是 0255):

int i = ...
Mat1b A = columnK == i;

它将与columnK 具有相同的大小,即Mx1

所以,在实践中:

int K = ...
int i = ...
Mat1d DAL = ...

Mat1b A = DAL.col(K) == i;

【讨论】:

以上是关于Matlab 到 Opencv 的转换问题的主要内容,如果未能解决你的问题,请参考以下文章

将 Opencv hsv 转换为 Matlab Hsv

OpenCV 中 MATLAB 的 caxis 等价物

如何像matlab一样检测opencv中的角点?

确定图像中车辆的距离(Matlab,OpenCV)

matlab 图像和 opencv 图像的相互转换

如何在Matlab中将字符串存储在xml中以从opencv读取它