OpenCV. Оценить ядро ​​после размывания

У меня есть два изображения: оригинальное и размытое. Основная проблема — оценить ядро, которое использовалось для свертки исходного изображения для размывания.

Простой пример получения размытого изображения:

    Mat src_raw = imread("D:/codes/debluring/img/lena.png", 1);

Mat kernel = (Mat_<float>(5, 5) <<
0.0392, 0.0398, 0.0400, 0.0398, 0.0392,
0.0398, 0.0404, 0.0406, 0.0404, 0.0398,
0.0400, 0.0406, 0.0408, 0.0406, 0.0400,
0.0398, 0.0404, 0.0406, 0.0404, 0.0398,
0.0392, 0.0398, 0.0400, 0.0398, 0.0392
);

Mat blured;
filter2D(src_raw, blured, src_raw.depth(), kernel);

imshow("Source Image", src_raw);
imshow("Blurred", blured);
cvWaitKey(0);

Теперь представьте, что у меня есть мат src_raw а также размыли и должен оценить ядро. Я не нашел никаких функций opencv, чтобы сделать это. Может быть, мне понадобится алгоритм оптимизации, чтобы получить его? Если да, могу ли я найти его в пакете opencv?

Спасибо

введите описание изображения здесь

1

Решение

Если я правильно понимаю, вы хотите решить проблему деконволюции, вот два связанных документа с предоставленным исходным кодом:

1

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

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

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