#include <QCoreApplication>
#include <iostream>
#include <fstream>
#include <opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <math.h>
int main(int argc, char *argv[])
{
cv::Mat srcImage = cv::imread("./imori.jpg",cv::IMREAD_COLOR);
int width = srcImage.rows;
int height = srcImage.cols;
cv::Mat dstImage = cv::Mat::zeros(height,width,CV_8UC3);
int r = 8;
double v = 0;
for (int j = 0; j < height;j++)
{
for (int i = 0 ; i < width ; i++)
{
for (int k = 0; k<3; k++)
{
v = 0;
for (int _j =0; _j < r ; _j++)
{
for (int _i = 0;_i < r;_i++)
{
v += (double)srcImage.at<cv::Vec3b>(j + _j , i + _i)[k];//左上角为起点
}
}
v /= (r*r); //求平均值
for (int _j = 0 ; _j < r ; _j++)
{
for (int _i = 0 ; _i < r; _i++)
{
//将平均值赋值给每个像素值
dstImage.at<cv::Vec3b>(j + _j,i+_i)[k] = (uchar)v;
}
}
}
}
}
cv::imshow("SrcImage",srcImage);
cv::imshow("DstImage",dstImage);
std::cout << "END!" << std::endl;
cv::waitKey(0);
return 0;
}