Reconstruir la imagen de entrada utilizando el método de retroproyección filtrada

  function PushButton2Selected (h, eventdata)
    switch list1_val
      case 'None'
        filter_val = 'None';
      caso 'Ram-Lak (Rampa)'
        filter_val = 'Ram-Lak';
      caso 'Shepp-Logan'
        filter_val = 'Shepp-Logan';
      caso 'Ram-Lak Cosine'
        filter_val = 'Coseno';
      caso 'Ram-Lak Hamming'
        filter_val = 'Hamming';
      caso 'Ram-Lak Hann'
        filter_val = 'Hann';
      case 'Especial'
        filter_val = 'Especial';
    end
    
    switch list2_val
      caso 'Lineal'
        interpol_val = 'lineal';
      caso 'más cercano'
        interpol_val = 'más cercano';
      caso 'Spline'
        interpol_val = 'spline';
      caso 'Cubic'
        interpol_val = 'pchip';
    final

    theta = round (0: 180 / number_projections: 179);
    del_sinogram = data.sinogram (:, theta + 1);

    if strcmp (filter_val, 'Special') == 1
      if strcmp (file_name (end-4: end), '3.mat') == 1
        data.SB = data.SB + 0.3 * rand (size (data.SB ));
      end
      
      if strcmp (file_name (end-4: end), 'f.mat') == 1
        filter_val = 'Hamming';
        rec_img = iradon (del_sinogram, theta, interpol_val, filter_val);
      else
        FFT_sinogram = fftshift (fft (del_sinogram), 1);
        FFT_sinogram = FFT_sinogram. * Data.SB (:, theta + 1);
        del_sinogram = ifft (ifftshift (FFT_sinogram, 1));
        rec_img = iradon (del_sinogram, theta, interpol_val);
      end
    else
      rec_img = iradon (del_sinogram, theta, interpol_val, filter_val);
    final
    
    figura, imagesc (rec_img), mapa de color (rosa)
    del título ([data.txt: 'proyecciones' list1_val 'filtro,' num2str (number_projections) list2_val 'interpolación' ''])
  final

D-023

Supongo que te gusta

Origin blog.csdn.net/ccsss22/article/details/115274073
Recomendado
Clasificación