c++ opencv对单个像素进行处理

#include 
using namespace std;

#include "opencv.hpp"
using namespace cv;

//颜色空间缩减函数
void ColorReduce(Mat input, Mat out, int div)
{
    out = input.clone();
    int iRow = out.rows;    //行数
    int iCol = out.cols*out.channels(); //每行的个数

    for (int i = 0;i < iRow;i++) {
        uchar* data = out.ptr(i);    //获取第i行的首地址
        for (int j = 0;j < iCol;j++) {
            data[j] = data[j] / div*div + div / 2;  //对每个元素进行处理
        }
    }

}


int main()
{

    Mat src = imread("1.jpg");  //加载图片
    Mat dst;
    dst.create(src.rows, src.cols, src.type()); //创建相同大小类型的图片
    ColorReduce(src, dst, 4);

    imshow("原图", src);  //显示原图
    imshow("颜色缩减图", dst);   //颜色缩减图
    waitKey(0); //按任意键退出
    return 0;
}

你可能感兴趣的:(c++ opencv对单个像素进行处理)