我正在使用OpenCV将一些Matlab代码翻译成C++。我想获取满足条件的矩阵的值。我为此创建了一个掩码,当我将其应用于原始矩阵时,我得到与原始矩阵相同大小的矩阵,但其中有0值,这些值在掩码中不存在。但我的问题是如何仅获取矩阵中非零的值并将其分配给另一个矩阵。
我的Matlab代码是:
我现在有的C++翻译是:
那么,我该如何创建一个只包含符合掩码条件值的矩阵?
我的Matlab代码是:
for i= 1:size(no,1)
mask= labels==i;
op = orig(mask, :); //op only contains the values from the orig matrix which are in the mask. So orig size and op size is not the same
.....
end
我现在有的C++翻译是:
for (int i=0; i<n.rows; i++)
{
Mat mask;
compare(labels,i,mask,CMP_EQ);
Mat op;
orig.copyTo(op,mask); //Here the orig size and the op size is always same but values which are not in the mask are 0
}
那么,我该如何创建一个只包含符合掩码条件值的矩阵?