2014-10-05 3 views
0

Рассмотрим следующий код:Нахождение восстановленного изображения в iradon в MATLAB

P = Phantom(256); 
theta = 0:1:179; 
R = radon(P, theta); 
I = iradon(R, theta); 

iradon.m вычисляет размер восстановленного изображения с помощью

N = 2*floor(size(R,1)/(2*sqrt(2))) 

Но почему эта формула? Это дает N как приблизительно равное числу проекций, деленное на квадратный корень из 2. Но как это даст размер изображения? Есть ли лучший способ найти размер изображения, данного R и тета?

ответ

0

size(R,1) не дает вам количество выступов, но размер проекции. Количество прогнозов будет size(R,2).

Выход radon имеет размер n x m, где n = размер отдельных выступов и m это число выступов. Размер проекции больше, чем размер изображения. Представьте себе, что вы проекция на 45 градусов, вам нужно, чтобы проекция была примерно sqrt(2) раз больше, чем изображение, чтобы не потерять информацию. iradon просто делает обратный расчет, чтобы вернуть исходный размер изображения.

На практике, возможно, из-за того, что MATLAB реализовал radon, размер вашего восстановленного изображения будет немного больше исходного изображения.

0

Я думаю, что это связано с максимальным размером квадрата, который может вписываться в круг. Диаметр круга - это ширина двумерных изображений, подаваемых в iRadon.