Я использую функцию Гаусса из openCV
сделать мое изображение размытым / отфильтровать и извлечь значения пикселей изображения до и после применения к нему размытия.
проблема в том, что нет разницы в значениях пикселей между изображением без размытия и с размытием, но отображение изображения после размытия по Гауссу фактически размыто, а матрица ядра имеет размер 3 * 3. было бы несомненно признателен, если кто-то может решить эту проблему, заранее спасибо, вот мой код.
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/imgproc/imgproc.hpp"#include <opencv2/core/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;int main()
{
Mat image = imread("C:/santhu/bitmap.bmp");
int rows=image.rows;
int cols=image.cols;
if (image.empty())
{
cout << "Cannot load image!" << endl;
return -1;
}
cout<<"the output for matrix of pixels";
//code to access pixel values of an image
cout<<"\nbefore blur";
for (int i = 0; i <rows; i++)
{
Vec3b *ptr = image.ptr<Vec3b>(i);
for (int j = 0; j < cols; j++)
{
Vec3b pixel = ptr[j];
//cout<<pixel<<"\t";
}
cout<<"\n";
}
imshow("Image", image);//displaying image
waitKey(0);
Mat image1=image.clone();//cloning image
GaussianBlur( image, image1, Size( 7, 7), 0, 0 );//applying Gaussian filtercout<<"\nafter blur";
//code to access pixel values of an image
for (int i = 0; i < rows; i++)
{
Vec3b *ptr = image1.ptr<Vec3b>(i);
for (int j = 0; j < cols; j++)
{
Vec3b pixel = ptr[j];
//cout<<pixel<<"\t";
}
cout<<"\n";
}imshow("image1:",image1);//displaying image1
waitKey(0);
}
Задача ещё не решена.
Других решений пока нет …