如何在opencv中屏蔽浮动垫

时间:2015-04-03 12:32:21

标签: c++ opencv mask mat

我有一个类型CV_32F的垫子A和一个二进制值为0和255的掩码M。例如,

A = [0.1 0.2; 0.3 0.4]  
M = [1   0  ; 0   0  ]

我想得到A&B = [0.1, 0;0 0]的结果 按位操作不适用于浮动垫。我试图将掩码转换为CV_32F,然后像下面那样掩盖,也不起作用。

M.convertTo(M, CV_32F);
A.copyTo(A, M);

那怎么办呢?

2 个答案:

答案 0 :(得分:2)

您的代码不起作用,因为正如Mat::copyTo的文档所说,该函数无法处理源矩阵和目标矩阵之间部分重叠的情况,而在你的情况下,源和目标矩阵是相同的。

您应该将结果保存在其他位置,例如

cv::Mat dst;
A.copyTo(dst, M);  // dst is what you want

答案 1 :(得分:0)

我认为这可能会有所帮助:

var date = new Date();
date = date.split(" ")[0];