Related Posts
Thailand Excellence Community
// example : averaging filter
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat input_image = imread("lena.png", IMREAD_GRAYSCALE);
//Mat input_image = imread("histogram.png", IMREAD_GRAYSCALE);
Mat processed_image;
//blur(input_image, processed_image, Size(5, 5));
blur(input_image, processed_image, Size(4, 4));
imshow("Input image", input_image);
imshow("Processed Image", processed_image);
waitKey(0);
return 0;
}
// example : median filter
#include <opencv2/opencv.hpp>
#include <random>
using namespace cv;
using namespace std;
void salt(Mat image, int n)
{
default_random_engine generator;
uniform_int_distribution<int> randomRow(0, image.rows - 1);
uniform_int_distribution<int> randomCol(0, image.cols - 1);
int i, j;
for (int k = 0; k < n; k++)
{
i = randomCol(generator);
j = randomRow(generator);
if (image.type() == CV_8UC1)
{
image.at<uchar>(j, i) = 255;
}
else if (image.type() == CV_8UC3)
{
image.at<Vec3b>(j, i)[0] = 255;
image.at<Vec3b>(j, i)[1] = 255;
image.at<Vec3b>(j, i)[2] = 255;
}
}
}
int main() {
Mat image = imread("lena.png", IMREAD_GRAYSCALE);
//Mat input_image = imread("histogram.png", IMREAD_GRAYSCALE);
Mat processed_image;
imshow("Input image", image);
salt(image, 30000);
imshow("Noisy Image", image);
//medianBlur(image, processed_image, 3);
//Mat processed_image2;
//medianBlur(processed_image, processed_image2, 5);
blur(image, processed_image, Size(3, 3));
imshow("Processed Image", processed_image);
//imshow("Processed Image2", processed_image2);
waitKey(0);
return 0;
}