一、像素操作-加减乘除
using namespace std;
using namespace cv;
class QuickDemo
{
public:
void pixel_oparators_Demo(Mat& image)
{
Mat m = Mat::zeros(image.size(), image.type());
m = Scalar(2, 2, 2);
Mat image_add;
image_add = image + Scalar(50,50,50);
Mat image_sub;
image_sub = image - Scalar(50, 50, 50);
Mat image_mul;
Mat image_div;
multiply(image, m, image_mul);
divide(image, m, image_div);
int w = image.cols;
int h = image.rows;
int c = image.channels();
Mat dst = Mat::zeros(image.size(), image.type());
for (int row = 0; row < w; row++)
{
for (int col = 0; col < h; col++)
{
Vec3b p1 = image.at<Vec3b>(row, col);
Vec3b p2 = m.at<Vec3b>(row, col);
dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(p1[0] + p2[0]);
dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(p1[1] + p2[1]);
dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(p1[2] + p2[2]);
}
}
}
};
int main()
{
Mat src = imread("data/right.bmp");
if (src.empty())
{
cout << "load image error !" << endl;
}
QuickDemo qd;
qd.pixel_oparators_Demo(src);
}