【发布时间】:2018-12-01 03:02:33
【问题描述】:
我正在尝试使用此代码循环遍历 cv::Mat 图像的像素
for (int i = 0; i < src.rows;i++)
{
for (int j = 0; j < src.cols;j++)
{
int temp2=IMAGE.at<uchar>(i,j)+b;
if (temp2<0)
{
IMAGE.at<uchar>(i,j) = 0;
}
else if (temp2>255)
{
IMAGE.at<uchar>(i,j) = 255;
}
else
{
IMAGE.at<uchar>(i,j) = temp2;
}
}
}
问题是当我显示图像时,它只调整图像约 1/4 的像素值,所以它似乎没有循环遍历每个像素。有没有更好的方法来使用 row/col 遍历每个像素?
【问题讨论】:
-
这似乎重新发明了对 Mat 的标量饱和加法。为什么不只是 OpenCV 提供的现有优化实现?