Выполните сохраняющее ребро сглаживание изображений Используя OpenCV в MATLAB

В этом примере показано, как выполнить сохраняющее ребро сглаживание изображений при помощи предварительно созданного интерфейса MATLAB® к функции OpenCV cv::edgePreservingFilter. В этом примере вы также используете createMat служебная функция, чтобы задать массивы ввода и вывода и getImage служебная функция, чтобы считать выходное изображение, возвращенное функцией OpenCV.

Добавьте интерфейс MATLAB в имена пакета OpenCV к списку импорта.

import clib.opencv.*;
import vision.opencv.util.*;

Считайте изображение в рабочее пространство MATLAB.

img = imread("peppers.png");

Создайте объекты интерфейса MATLAB для OpenCV MatND и InputArray классы, чтобы сохранить входное изображение.

[inputMat,inputArray] = createMat(img);

Создайте объекты интерфейса MATLAB для OpenCV MatND и OutputArray классы записи выходное изображение, возвращенное функцией OpenCV.

[outputMat,outputArray] = createMat;

Сглаживайте входное изображение при помощи функции OpenCV cv::edgePreservingFilter. Чтобы вызвать эту функцию из MATLAB, необходимо использовать обозначение cv.edgePreservingFilter.

cv.edgePreservingFilter(inputArray,outputArray);

Считайте отфильтрованное выходное изображение, возвращенное функцией OpenCV.

filteredImg = getImage(outputArray);

Отобразите исходный вход и отфильтрованные выходные изображения.

figure
imshow(img)
title("Input Image")

Figure contains an axes object. The axes object with title Input Image contains an object of type image.

figure
imshow(filteredImg)
title("Filtered Output Image")

Figure contains an axes object. The axes object with title Filtered Output Image contains an object of type image.

Измените параметры фильтра

Задайте значения параметров для сохраняющего ребро фильтра. Установите эти значения:

  • flags к 2, выполнять нормированную фильтрацию свертки.

  • Стандартные отклонения sigma_s к 20 и sigma_r к 0.3.

flags = 2;
sigma_s = 20;
sigma_r = 0.2;

Выполните фильтрацию при помощи заданных параметров фильтра.

cv.edgePreservingFilter(inputArray,outputArray,flags,sigma_s,sigma_r);

Считайте отфильтрованное выходное изображение, возвращенное функцией OpenCV.

filteredImg = getImage(outputArray);

Отобразите отфильтрованное выходное изображение.

figure
imshow(filteredImg)
title("Filtered Output Image")

Figure contains an axes object. The axes object with title Filtered Output Image contains an object of type image.

Смотрите также

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте