第三课 图像操作
1.读写图像
imread(“图像位置”);
imwrite(“图像位置”);
2.读写像素
int b = dst.at(row, col)[0];//读取BGR像素值,三通道图像像素值
int g = dst.at(row, col)[1];
int r = dst.at(row, col)[2];
3.修改像素值
int gray = src.at<uchar>(row, col);//单通道图像像素值
dst.at<Vec3b>(row, col)[0]=255-b;
dst.at<Vec3b>(row, col)[1]=255-g;
dst.at<Vec3b>(row, col)[2]=255-r;
bitwise_not(src, dst);//与上述功能一致
第四课 图像混合
1.线性混合操作
两幅图像按权重结合:g(x)=af(x)+bh(x),a+b=1(保证像素值在0~255之间)
API:addWeighted
两张图片的大小和类型必须一致才可以
六个参数依次为:图像1名,a,图像2名,b,gamma值(校验值,常量),输出图像
addWeighted(src1, alpha, src2, 1.0 - alpha, 0, dst);
//add(src1,src2,dst,Mat());直接相加,效果不好
multiply(src1, src2, dst,1.0);//像素相乘