• Регистрация
dant
dant+6.23
н/д
  • Написать
  • Подписаться

Реализация пользовательского интерфейса программной обработки медицинских изображений в MATLAB

В данной статье рассматривается задача проектирования и реализации пользовательского интерфейса программной обработки медицинских изображений в среде MATLAB. Целью статьи является создание шаблонов ситуационного интерфейса, которые могут программно редактироваться под изменяющиеся задачи и объекты обработки. В связи с этим предлагается использовать некоторые функции программного пакета MATLAB, которые используются для создания всплывающих диалоговых окон, а также редактирования их содержания.

Введение.

Интерфейс пользователя имеет большое значение для любой программной среды и считается важной ее частью, направленной, главным образом, на конечного пользователя. Именно по интерфейсу пользователь судит о разработанной программе в целом. Зачастую заключение об использовании программного обеспечения пользователь принимает по тому, в какой степени ему комфортен и понятен интерфейс. В области разработки пользовательских интерфейсов есть ряд задач, таких как высокая трудозатратность разработки, проблема адаптивности интерфейса к изменяющимся внешним условиям и проблема удобства применения интерфейса [1]. Вследствие этого необходимым считается выбор гибкой и интерактивной среды разработки приложений обработки данных. MATLAB является надежным программным обеспечением, которое отвечает требованиям, подходящим как для выполнения всевозможных вычислений и выводов результатов, так и для создания пользовательского интерфейса [2]. Невзирая на существование разных способов создания интерактивных окон, инструменты пользовательского интерфейса MATLAB чаще всего содержат элементную библиотеку, включающую меню, прокрутку текста вверх и вниз, кнопки и другие элементы, необходимые для интуитивно понятного пользования. Стоит отметить, что существуют и высокоуровневые средства конструирования интерфейса, которые могут быть применены профессиональными программистами. Последние обычно используют пакет инструментов, который дает возможность специфицировать функции ввода-вывода и определять интерфейсные составляющие, применяя технику прямого манипулирования. Но в процессе взаимодействия пользователя и разработчика может возникать проблема семантического разрыва [3]. Вследствие этого необходимо большое количество итераций, прежде чем разрабатываемый продукт в целом и интерфейс в частности будут удовлетворять требованиям пользователя.

Постановка задачи.

Необходимо реализовать интерфейс пользователя, где будет предложен выбор использования определённого метода обработки изображения с возможностью просмотреть оригинальное изображение до обработки и дальнейшего принятия решения по выбору способа сегментации. При разработке алгоритма построения интерфейса одним из используемых методов обработки был взят метод Собеля, который использует фильтрацию исходного изображения, а следующим - метод градиентной фильтрации. Программная реализация методов, используемых в данной работе, представлена в [4].

Решение задачи.

С помощью операторов switch, case, otherwise программа оценивает выражение, вписанное в командной строке, и выбирает выполнение одной из нескольких групп операторов. Прописав условия, можно отображать разный текст в зависимости от значения, введенного в коде. После запуска кода пользователь увидит перед собой диалоговое окно выбора, представленное на рисунке 1.

Рисунок 1 – Диалоговое окно после запуска программы

 

Далее интерфейс предложит выбрать, каким способом обработать изображение. В данном случае выбор состоит из метода Собеля и метода градиентной фильтрации. Стоит отметить, что для разных целей выбор можно расширить, программно дописав код. Также у пользователя есть возможность посмотреть на изображение без обработки и принять решение, каким способом проводить сегментацию. На рисунке 2 изображен результат выбора действия «Показать оригинальное изображение».

Рисунок 2 – Диалоговое окно выбора после показа оригинального изображения

 

Программный код:

Pic=imread('izobrazhenie.jpg');
CellStr = {'Показать оригинальное изображение'; 'Перейти к обработке изображения методом Собеля'; 'Перейти к обработке изображения методом градиентной фильтрации'};
L_ycbcr=rgb2ycbcr(Pic);
[picture] = listdlg('ListString', CellStr,...
'SelectionMode','single','Name', 'Окно выбора', 'ListSize', [500 200],
 'PromptString', 'Что
disp(['Вы выбрали: '
switch picture
case 1
P=imread('jop.jpg');
imshow(P)
Pic=imread('jop.jpg');
CellStr = {'Обработать изображение методом Собеля'; 'Обработать методом градиентной фильтрации'};
L_ycbcr=rgb2ycbcr(Pic);
[picture] = listdlg('ListString', CellStr,... 'SelectionMode','single','Name', 'Окно выбора', 'ListSize', [500 200], 'PromptString', 'Как вы хотели бы обработать изображение?', 'fus', 5); disp(['Вы выбрали: ' CellStr{picture}]);
switch picture
case 1
       P=L_ycbcr(:,:,1);
BW = edge(P,'sobel');
figure, imshow(BW);title('Выделение границ на исходном изображении методом ') case 2
      u=fspecial('sobel');
uq = u';
Gx=imfilter(double(P), uq);
бы вы хотели сделать?', 'fus', 5);
CellStr{picture}]);
Gy=imfilter(double(P), u);
Gg = abs(Gx)+ abs(Gy);
figure, imshow(uint8(Gg));title('Обработка изображения методом градиентной фильтрации')
end
case 2
       P=L_ycbcr(:,:,1);
BW = edge(P,'sobel');
figure, imshow(BW);title('Обработка изображения методом Собеля ') case 3
       P=imread('jop.jpg');
u=fspecial('sobel');
uq = u';
Gx=imfilter(double(P), uq);
Gy=imfilter(double(P), u);
Gg = abs(Gx)+ abs(Gy);
figure, imshow(uint8(Gg));title('Обработка изображения методом градиентной фильтрацией')
end

Выбрав один из предложенных методов обработки, пользователь увидит его результат (рисунок 3 а, б).

Рисунок 3 – а) Результат выбора обработки изображения методом Собеля; б) Результат выбора обработки изображения градиентной фильтрацией

 

Выводы.

Реализация пользовательских интерфейсов в приложениях является сложной задачей для разработчиков, так как пользовательский интерфейс – важный элемент любой прогрессивной программной системы, поскольку компьютерные системы предназначены для того, чтобы с ними работали пользователи, а пользователи осуществляют взаимодействие с системой именно через интерфейс. Для разработки интерфейса использовался пакет моделирования MATLAB [5], обладающего большим набором инструментов для проектирования компьютерных систем. Рассмотренные и реализованные в статье методы сегментации, а также программное обеспечение с рядом дополнений могут применяться как для решения практических задач в медицине, так и для разных семейств объектов и систем естественного, так и техногенного происхождения [6].

Список литературы

  1. Белоусова Светлана Алексеевна, Рогозов Юрий Иванович Анализподходов к созданию пользовательского интерфейса // Известия ЮФУ. Технические науки. 2014. No6 (155). URL: https://cyberleninka.ru/article/n/analiz- podhodov-k-sozdaniyu-polzovatelskogo-interfeysa (дата обращения: 30.10.2020).
  2. Гонсалес Р. Цифровая обработка изображений в среде MATLAB / Р. Гонсалес, Р. Вудс, С. Эддинс. М.: Техносфера, 2006. — 616 c.
  3. Федечкин Роман Сергеевич, Французова Юлия Вячеславовна Разработка интерфейса пользователя для автоматизированной системы // Известия ТулГУ. Технические науки. 2016. No2. URL: https://cyberleninka.ru/article/n/razrabotka- interfeysa-polzovatelya-dlya-avtomatizirovannoy-sistemy (дата обращения: 30.10.2020).
  4. Журавель И.М. // Краткий курс теории обработки изображений. Изд. Москва. 2008 г.
  5. Ковалев В.А. Анализ текстуры трехмерных медицинских изображений // Нац. акад. наук Беларуси, Объед. инст-т проблем информатики. - Минск: Белорусская наука, 2008. - 263 с.

Файлы

  • Статья_Hub.pdf

Теги

    04.02.2021

    Комментарии

    • nikc86
      nikc86+0.40
      27.02.2021 02:34

      занимательно!

      • elenaM88
        elenaM88+0.20
        8.04.2021 15:18

        Спасибо за информацию, приведённую в статье!

        • AlexTihonov
          AlexTihonov0.00
          11.04.2021 22:04

          а можно расширить количество методов сегментации в программе?

          • dant
            dant+6.23
            12.04.2021 14:47

            Да, у меня есть предыдущие работы где я делал обзор на большинство методов