Как рассчитать изгиб фильтрации в Matlab? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть 2 переменные: изображение, которое содержит исходное изображение. FilteredImage, который является отфильтрованным изображением. Оба изображения RGB. Я знаю, как рассчитать изгиб для двумерных изображений

Image = unread('C:\Users\klass\Pictures\man.jpeg');
NoiseImage = minimise(Image,'gaussian');
ImageFiltered = NoiseImage;
for c = 1 : 3
    ImageFiltered (:, :, c) = medfilt2(NoiseImage(:, :, c) [3, 3]
end
Bending = norm(im2double(Image - FilteredImage))/norm(im2double(FilteredImage)) * 100;

Когда я пытаюсь использовать эту формулу для своих фигур, я получаю эту ошибку:

Error using norm
Input must be 2-D.

1 Ответ

0 голосов
/ 24 февраля 2020

Я пытался передать 3-D изображения в функцию norm(). Обходной путь - конвертировать каждое изображение в 2-D с помощью функции rgb2gray(). Поэтому я эвакуирую бандаж по формуле:

Bending = norm(im2double(rgb2gray(Image) - rgb2gray(FilteredImage)) / norm(im2double(rgb2gray(Image))) * 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...