在上一篇的博客里面我实现了效果以及代码
代码里面有几个难懂的地方。今天特地画出重点:
void salt(cv::Mat image, int n)
{
uchar* data = image.ptr<uchar>(0);
//指针的定义
uchar b = 0, g = 0, r = 0;
for (int i = 0; i < image.rows; i++)
{
//得到图像的行
for ( int j = 0; j < image.cols ; j++)
{
//得到图像的列
r = data[i * 3 + j * image.cols * 3];
g = data[i * 3 + j * image.cols * 3+1];
b = data[i * 3 + j * image.cols * 3+2];
//利用这样的形式可以分别得到R、G、B值
uchar gray = (r + g + b) / 3;
//得到灰度图的其中一个方法
data[i * 3 + j * image.cols * 3]=gray;
data[i * 3 + j * image.cols * 3+1] = gray;
data[i * 3 + j * image.cols * 3+2] = gray;
//这步是为了将R、G、B值更改为一样的
}
}
}
还没编辑完,待续。。。