Применение размытия по Гауссу / фильтра к изображению в opencv Stack Overflow

Я использую функцию Гаусса из 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);
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]