请查看以下代码。它应该工作正常吗?我过去写过这段代码也没有问题。但是......如果您看到下面的图像,并非所有图像都变白。只有不到一半,这是“列数”,但不是这样的。知道为什么吗?
{
//uchar* z= image.data;
for (int i=0; i < image.rows; i++)
{
for (int j=0; j < image.cols; j++)
{
image.at<uchar>(i,j)= 255; //make all the pixels in the image white
}
}
cv::imshow("After",image);
}
结果(见“后”窗口):
答案 0 :(得分:3)
您正在处理彩色图像,这意味着它的大小为3 * m * n个字节。您只将第一个m * n像素变为白色。
答案 1 :(得分:3)
您应该按照以下方式进行:
Vec3b intensity;
intensity.val[0] = 255;
intensity.val[1] = 255;
intensity.val[2] = 255;
for (int i=0; i < image.rows; i++)
{
for (int j=0; j < image.cols; j++)
{
image.at<Vec3b>(i,j)= intensity; //make all the pixels in the image white
}
}
cv::imshow("After",image);
}