Доля_ПГ_Радон МатЛаб (П. Г. Доля - Математические методы компьютерной томографии)

PDF-файл Доля_ПГ_Радон МатЛаб (П. Г. Доля - Математические методы компьютерной томографии) Информатика (114140): Книга - 10 семестр (2 семестр магистратуры)Доля_ПГ_Радон МатЛаб (П. Г. Доля - Математические методы компьютерной томографии) - PDF (114140) - СтудИзба2021-11-04СтудИзба

Описание файла

PDF-файл из архива "П. Г. Доля - Математические методы компьютерной томографии", который расположен в категории "". Всё это находится в предмете "информатика" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве ЯрГУ им. Демидова. Не смотря на прямую связь этого архива с ЯрГУ им. Демидова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Доля П.Г.Харьковский Национальный Университетмеханико – математический факультет2012 г.Математические методы компьютерной томографии.Перед вами брошюра, которая является частью пособия «Математическиеметоды компьютерной томографии». Она знакомит студентов с функциямиMATLAB, используемыми при вычислении и визуализации прямого иобратного двумерного преобразования Радона – математического метода,лежащего в основании томографии. Приведен также параграф, в которомсодержатся примеры (в основном построения графиков), рассмотренныенами в других частях пособия. Многие описываемые здесь функцииотносится к пакету расширения Image Processing Toolbox.

Однакодля понимания излагаемого материала необходимы базовые знания по работев MATLAB.Часть 2. Преобразование Радона в MATLABОглавление1. Построение Радоновских образов и прообразов по аналитическимформулам............................................................................................................ 12. Полезные графические функции ................................................................. 13. Прямое преобразование Радона. Функция radon. ...................................... 94. Обратное преобразование Радона.

Функция iradon................................. 161. ПостроениеРадоновскиханалитическим формулам.образовипрообразовпоВ предыдущих частях пособия рассмотрено большое количество примеровпостроения изображений и радоновских проекций. После получения формулмы часто приводили графический образ. Здесь будут приведены примерыMatLab, с помощью которых выполнялась такая визуализация.2.

Полезные графические функцииПонимание двух функций MatLab radon и iradon, используемых длявычисления прямого и обратного преобразования Радона, невозможно безнаглядного представления результатов их работы. В настоящем параграфемы рассматриваем некоторые графические функции, которые наиболее частоиспользуются в этом случае. Вот функции, которые рассматриваются в этомпараграфеimread('файл',...)- чтение графического файлаimfinfo('файл',...) - информация о графическом файлеimage(матрица,...)- нарисовать образ матрицыcolormap(матрица(m x 3))imshow(матрица,...)imagesc(матрица,...)surface(матрица,...)surf(матрица,...)mesh(матрица,...)Графический файл в MATLAB представляется в виде матрицы с элементами,являющимися целыми числами, которые являются индексами (номерами)цветов в матрице называемой картой или палитрой цветов (colormap).

ВMATLAB есть функции чтения графических файлов и отображенияполученных матриц. Рассмотрим для примера рисунок, который находится вграфическом файле Pogorelov32x32.bmp, размером 32 на 32 пикселя.КомандаA=imread('Pogorelov32x32.bmp')читает и печатает матрицу A размером 32 x 32. Значения элементов матрицыявляются номерами цветов соответствующих пикселей. Вот кусочек этойматрицы15 15 15 15 0 0 0 0 0 1 6 …15 0 0 6 0 7 7 8 8 8 8 …15 15 0 0 0 1 7 8 7 8 8 …15 7 0 2 1 7 7 8 8 8 8 …15 5 0 7 0 7 7 8 8 8 8 ………………………………………………….Командаimage(A);по этой матрице рисует картинку в графическом окне (см.

рисунок слева).Рисунок не очень хорош и для получения приемлемого изображения нампотребуется изменить параметры его отображения.Когда матрица содержит целые положительные числа, то ее элементыинтерпретируются как индексы в карте цветов. Функция image(A) строитее образ в текущей карте – каждому элементу матрицы будет соответствовать2некоторый прямоугольник на рисунке, закрашенный цветом, номер которогосоответствует строке матрицы цветов (палитра). Имеются такжедополнительные аргументы, управляющие работой функции image.Полученным образом в графическом окне, можно управлять, используяобычные функции MatLab, управляющие графикой.

В частности, в нашемпримере рисунок вытянут по горизонтали. Командаaxis equal;выравнивает горизонтальные и вертикальные размеры пикселей вграфическом окне. Она устанавливает коэффициент сжатия изображенияодинаковым по всем осям (см. предыдущий рисунок справа). Тот жерезультат дает командаaxis image;но охватывающий изображение прямоугольник в графическом окнедеформируется под размер изображения.Цвета точек берутся из текущей карты цветов.

Карта цветов (палитра)– это матрица, которая содержит 3 столбца и несколько (может быть много)строк. Например, командаgray(5)создает следующую матрицу, которая может быть использована как палитрацветов00.25000.50000.75001.000000.25000.50000.75001.000000.25000.50000.75001.0000Карта цветов colormap является m × 3 матрицей вещественных чиселдиапазон изменения которых от 0 до 1.

Каждая ее строка является RGBвектором, определяющим один цвет. Строка карты цветов с номером kопределяет k – й цвет в формате [r (k ) g (k ) b(k )] с соответствующимиинтенсивностями красного r(k), зеленого g(k) и синего b(k) цветов.Мы видели, что матрица A, прочитанная из файла, содержит числа от 0до 15, поэтому создадим черно – белую палитру с 16 оттенками серого.Командаcolormap(gray(16));преобразует рисунок к следующему видуОбратите внимание на тип элементов матрицы A в окне Workspace – uint8(беззнаковые 8 – битные целые могут изменяться в диапазоне от 0 до 255).Если выполнить командуB=A/15;то операция деления даст только 0 или 1, а тип элементов матрицы B неизменится (целое разделить на целое дает целое).

Это позволяет создать3черно – белый рисунок. Для этого создадим палитру из двух цветов – черного(ему соответствует строка 0, 0. 0) и белого (ему соответствует строка 1, 1, 1).cm=[0 0 0;1 1 1];% матрица палитры (два цвета – черныйи белый)image(B);axis image; colormap(cm);Командаcolormap('default')устанавливает карту цветов по – умолчанию.Графический файл мог сразу быть монохромным. Например, авторсоздал в Paint-е черно-белую картинку 32 x 32 пикселя PeterMono1.bmpКомандаP=imread('PeterMono1.bmp')прочитала и отпечатала матрицу 32 x 32 пикселя, составленную только изнулей или единиц.

Командаimage(P);axis image; colormap('default');нарисовала очень темную картинку. Но командыcm=[0 0 0;1 1 1];colormap(cm);преобразуют картинку к виду, который показан выше.Чтобы узнать формат графического файла можно использовать командуinfo = imfinfo('Pogorelov32x32.bmp')Она возвращает структуру с большим количеством полей, содержащуюразличную информацию о графическом файле. Здесь мы приводимнекоторые поля этой структурыinfo =Filename:FileSize:Format:FormatVersion:Width:Height:BitDepth:ColorType:NumColormapEntries:Colormap:NumPlanes:'Pogorelov32x32.bmp'630'bmp''Version 3 (Microsoft Windows 3.x)'32324'indexed'16[16x3 double]1.................Команда [X,map] = imread(filename) читает графический файл вматрицу X, а его карту цветов в матрицу map, элементы котороймасштабируются к диапазону [0, 1].[A,m] = imread('Pogorelov32x32.bmp');image(A);colormap(m);4Команда[A,map,alpha] = imread(...)в третьем параметре возвращает маску (матрицу из логических нулей иединиц), которая используется для определения информации о прозрачноститочек образа (какие точки образа отображать на экране, а какие нет; неотображать те, для которых элементы C равны 1).

Например, этот параметрполезен для рисования образа файла иконки.[A,B,C]=imread('Peter1.ico'); % A содержит числа от 0 до 255.image(A); axis image;% левый рисунокcolormap(B);% средний рисунокТеперь сделаем фон рисунка белым.B2=B;B2(256,:)=[1 1 1];% последний цвет палитры сделать белым цветомD = ones(size(A)) * (length(B2)-1); %создать матрицу с элементами 255D(C == 0) = A(C == 0);image(uint8(D)), colormap(B2); %правый рисунокaxis image;Поясним работу строки D(C==0)=A(C==0).Если посмотреть в окне Workspace, то видно, что массив C являетсялогическим. И при этом он имеет такой же размер, что и массив A.

Здесьиспользуется логическое индексирование в формеимя_матрицы(логический массив)где логический массив должен иметь тот же размер, что и матрица.Результатом этой операции логического индексирования является вектор,составленный из элементов исходной матрицы, для которых в логическоммассиве соответствующие элементы равны логической единице. Этот векторможет стоять как в правой части оператора присваивания, так и в левой.Вначале мы создали double массив D из чисел 255, а затем создали вектораодинаковой длины D(C==0) и A(C==0). Второй вектор содержит толькоэлементы матрицы A, для которых в матрице C элементы равны нулю. Этозначит, что соответствующие точки образа должны быть нарисованы.Значения этого вектора A(C==0) присваиваются элементам вектораD(C==0), т.е.

соответствующим элементам матрицы D. Если в матрице Cэлемент был 1, то соответствующий элемент матрицы D не меняется, т.е.остается равным 255. В результате элементы матрицы A, отвечающиеотображаемым точкам, скопировались в матрицу D, а отвечающиенеотображаемым точкам остались в матрице D равными 255. Кроме того, нампотребовалось заменить последнюю (256 – ю) строку матрицы палитры,чтобы она соответствовала белому цвету.

Поскольку функция imageотображает только матрицы с типом элементов uint8 (диапазон изменения5чисел от 0 до 255), то нам также потребовалось преобразование типавещественной матрицы D в тип uint8.Команда image(x,y,C), где x и y являются двухэлементными векторами,которые определяют диапазон изменения координат x и y, рисует такой жеобраз, что и команда image(C). Это бывает полезно, например, в случае,когда вы желаете, чтобы метки осей соответствовали реальным физическимкоординатам графического образа.A = magic(5);x = [-2.5 2.5];y = [0.5 5.5];image(x,y,A), axis image, colormap(jet(25))Функция imshow(M) тоже строит графический образ полутоновой (т.е.одноцветной с различными градациями яркости) матрицы M элементыкоторой имеют тип double.

При этом каждой точке матрице соответствуетодин пиксель в графическом окне. Вариантов использования этой функцииочень много. Она является базовой графической функцией пакета ImageProcessing Toolbox. С различными вариантами ее использованияследует ознакомиться по справочной системе.I = zeros(4,4) % генерирование нулевой матрицы размером 4 x 4I =0000000000000000I(2:3, 2:3) = 1% изменение значений матрицыimshow(I);% построение образа матрицыI =0000011001100000Здесь единицы в матрице I соответствуют белым точкам рисунка, а нули –черным.

Но точек мало, поэтому рисунок маленький. Если бы мыиспользовали функцию image, то нам надо было бы выполнитьпреобразование типа, например, так image(uint8(I)), но при этом образматрицы был построен по размеру графического окна. Увеличим размеррисунка, увеличив размер матрицыI = zeros(100,100);I(25:75, 25:75) = 1;colormap('default');imshow(I);% следующий рисунок слеваcolormap(hot); % следующий рисунок справа6Слово hot представляет имя предопределенной матрицы палитры. Именаготовых матриц палитр можно найти в справочной системе.

Вот еще примериспользования функции imshow.moon = imread('moon.tif');imshow(moon);или можно сразу передать имя файлаimshow('moon.tif');imshow(I,[low high]) рисует образ I в серых оттенках с диапазономизменения значений I равным [low high]. Значение low и меньшие егорисуются черным цветом, значение high и большие его рисуются белым.Значения между рисуются промежуточными оттенками серого, используяуровни серого определяемые по – умолчанию. Если используется пустаяматрица [] вместо [low high], то imshow использует [min(I(:))max(I(:))], т.е. минимальное значение в I отображается черным, амаксимальное – белым цветами.Угадывать палитру или использовать палитру графического файла не всегдаудобно. Поэтому в MatLab есть функция imagesc, которая масштабируетматрицу под текущую палитру и затем рисует ее образ.Команда imagesc(A) отображает матрицу как графический образ.Каждый элемент матрицы соответствует прямоугольному участку образа.Значения элементов являются индексами строк текущей матрицы палитры, атройка чисел этой строки в формате RGB определяет цвет такогопрямоугольника.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее