如何在矩阵中指定特定的行和列范围

时间:2013-09-04 04:45:52

标签: c++ opencv

我想将矩阵中的特定行和列范围分配给1,并将矩阵与将图像与掩码相乘的原始图像进行多重化。在matlab中我使用了以下代码

texture_mask= zeros(size(d_mask, 1), size(d_mask,2));
texture_mask(troi(1)-troi(3):troi(1)+troi(3),troi(2)-troi(3):troi(2)+troi(3))=1;
im= im2double(im).*repmat(texture_mask, [1 1 3]);
im= im(troi(1)-troi(3):troi(1)+troi(3),troi(2)-troi(3):troi(2)+troi(3),:);

当我在opencv中使用以下代码尝试时,我在乘法中得到错误,可能是因为未正确分配texture_mask。

Mat texture_mask= Mat::zeros((dress_mask.rows),(dress_mask.cols),CV_64FC3);   texture_mask.rowRange(troi[0]-troi[2],troi[0]+troi[2]).colRange(troi[1]-troi[2],troi[1]+troi[2])=1;
    img.convertTo(img,CV_64FC3);
    img= img*texture_mask;//Getting an error here
    img=img.rowRange(troi[0]-troi[2],troi[0]+troi[2]).colRange(troi[1]-troi[2],troi[1]+troi[2]);

在进行乘法后,我必须裁剪图像。如上所示。代码出了什么问题?

0 个答案:

没有答案