我声明了一个Mat对象D4,其初始值为零,给定的维度和数据类型。 然后以较小的尺寸显示它,我写了这个
Mat D4=Mat::zeros(7168,7424,CV_32FC1);
Mat res6;
for (i=0; i<7168; i++)
for(j=0; j<7424; j++)
{
DC_.at<uchar>(i, j) = (unsigned char)D4.at<float>(i, j);
}
resize(DC_, res6, Size(512, 512));
imshow("Test", res6);
我期待一个完整的黑色图像。但是我在右下方得到一块灰色值(该补丁类似于我在那个确切位置的输入图像)为什么会发生这种情况?出了什么问题?请尽快回答。
答案 0 :(得分:0)
如果您使用此代码段,请尝试是否仍然会出现问题?
Mat D4=Mat::zeros(DC_.rows,DC_.cols,CV_32FC1);
Mat res6;
for (i=0; i<DC_.rows; i++)
for(j=0; j<DC_.cols; j++)
{
DC_.at<uchar>(i,j) = (unsigned char)D4.at<float>(i,j);
}
resize(DC_,res6,Size(512,512));
imshow("Test",res6);