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

В данной статье рассматривается задача проектирования и реализации пользовательского интерфейса программной обработки медицинских изображений в среде Matlab. Целью статьи является создание шаблонов ситуационного интерфейса, которые могут программно редактироваться под изменяющиеся задачи и объекты обработки. В связи с этим предлагается использовать некоторые функции программного пакета Matlab, которые используются для создания всплывающих диалоговых окон, а также редактирования их содержания.
Введение. Интерфейс пользователя имеет большое значение для любой программной среды и считается важной ее частью, направленной, главным образом, на конечного пользователя. Именно по интерфейсу пользователь судит о разработанной программе в целом. Зачастую заключение об использовании программного обеспечения пользователь принимает по тому, в какой степени ему комфортен и понятен интерфейс. В области разработки пользовательских интерфейсов есть ряд задач, этих как высокая трудозатратность разработки, проблема адаптивности интерфейса к изменяющимся внешним условиям и проблема удобства применения интерфейса [1]. Вследствие этого, необходимым считается выбор гибкой и интерактивной среды разработки приложений обработки данных. Matlab является надежным программным обеспечением, которое отвечает требованиям, подходящим, как для выполнения всевозможных вычислений и выводов результатов, так и для создания пользовательского интерфейса [2]. Невзирая на существование разных способов создания интерактивных окон, инструменты пользовательского интерфейса Matlab чаще всего содержат элементную библиотеку, включающую меню, прокрутку текста вверх и вниз, кнопки, и другие элементы, необходимые для интуитивно понятного пользования. Стоит отметить, что существуют и высокоуровневые средства конструирования интерфейса, которые могут быть применены профессиональными программистами. Последние обычно используют пакет инструментов, который дает возможность специфицировать функции ввода-вывода и определять интерфейсные составляющие, применяя технику прямого манипулирования. Но в процессе взаимодействия пользователя и разработчика может возникать проблема семантического разрыва [3]. Вследствие этого необходимо большое количество итераций, прежде чем разрабатываемый продукт в целом, и интерфейс в частности, будет удовлетворять требованиям пользователя.
Постановка задачи. Необходимо реализовать интерфейс пользователя, где будет предложен выбор использования определённого метода обработки изображения с возможностью просмотреть оригинальное изображение до обработки и дальнейшего принятия решения по выбору способа сегментации. При разработке алгоритма построения интерфейса одним из используемых методов обработки был взят метод Собеля, который использует фильтрацию исходного изображения, а следующим – метод градиентной фильтрации. Программная реализация методов, используемых в данной работе представлена в [4].
Решение задачи. С помощью операторов switch, case, otherwise программа оценивает выражение, вписанное в командной строке и выбирает выполнение одной из нескольких групп операторов. Прописав условия можно отображать разный текст в зависимости от значения, введенного в коде. После запуска кода пользователь увидит перед собой диалоговое окно выбора, представленное на рисунке 1.
Далее интерфейс предложит выбрать, каким способом обработать изображение, в данном случае выбор состоит из метода Собеля и метода градиентной фильтрации. Стоит отметить, что для разных целей выбор можно расширить, программно дописав код. Также у пользователя есть возможность посмотреть на изображение без обработки и принять решение, каким способом проводить сегментацию. На рисунке 2 изображен результат выбора действия «Показать оригинальное изображение».
Программный код:
Pic=imread('izobrazhenie.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=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);
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 а, б).
Выводы. Реализация пользовательских интерфейсов в приложениях является сложной задачей для разработчиков, так как пользовательский интерфейс – важный элемент любой прогрессивной программной системы, поскольку компьютерные системы предназначены для того, чтобы с ними работали пользователи, а пользователи осуществляют взаимодействие с системой именно через интерфейс. Для разработки интерфейса использовался пакет моделирования Matlab [5], обладающего большим набором инструментов для проектирования компьютерных систем. Рассмотренные и реализованные в статье методы сегментации, а также программное обеспечение с рядом дополнений могут применяться как для решения практических задач в медицине, так и для разных семейств объектов и систем естественного, так и техногенного происхождения [6].
Источники
- Белоусова Светлана Алексеевна, Рогозов Юрий Иванович Анализ подходов к созданию пользовательского интерфейса // Известия ЮФУ. Технические науки. 2014. №6 (155).
- Федечкин Роман Сергеевич, Французова Юлия Вячеславовна Разработка интерфейса пользователя для автоматизированной системы // Известия ТулГУ. Технические науки. 2016
Файлы
- Статья_Hub.pdf
Комментарии
занимательно!