#include <iostream>
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<uchar>(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;
}