1. 下标Mat.at(i,j)
int getpixel1(Mat img) {
if (img.empty())
return -1;
for (int i = 0; i < img.rows; i++) {
for (int j = 0; j < img.cols; j++) {
img.at<Vec3b>(i, j)[0] = 255;
img.at<Vec3b>(i, j)[1] = 255;
img.at<Vec3b>(i, j)[2] = 255;
}
}
return 1;
}
2.指针遍历Mat::ptr
int getpixel2(Mat img) {
if (img.empty())
return -1;
// 将3通道转换为1通道
int nl = img.cols*img.channels();
for (int i = 0; i < img.rows; i++) {
uchar* p_rtr = img.ptr<uchar>(i);
for (int j = 0; j < nl; i++) {
p_rtr[j] = p_rtr[j]+1;
}
}
}
本文详细介绍了使用OpenCV进行图像处理的两种方法:通过下标访问像素和利用指针遍历矩阵。这两种方法分别展示了如何将图像转换为全白图片和如何对图像中的像素值进行操作。此外,文章还提到了去雾算法的应用,为图像处理提供了更多可能性。
577

被折叠的 条评论
为什么被折叠?



