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

Реализация пользовательского интерфейса программной обработки медицинских изображений в 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].

Файлы

  • Статья_Hub.pdf

Теги

    04.02.2021

    Комментарии

    • nikc86
      nikc860.00
      27.02.2021 02:34

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