joi , 18 octombrie 2018
roen

Art. 02 – Vol. 23 – Nr. 4 – 2013

UTILIZAREA PACHETULUI DE PROGRAME jSNARK PENTRU RECONSTRUCŢIA ALGEBRICĂ
A IMAGINILOR

Constantin POPA
cpopa@univ-ovidius.ro

Ioana POMPARĂU
ioanapomparau@gmail.com

Universitatea “Ovidius” din Constanţa

Rezumat: Cercetările privind reconstrucţia de imagini în tomografia computerizată începute în anii ’50 au continuat cu lucrările lui G.T. Herman şi R. Gordon din anii ’70, în care sunt propuse atât tehnici de generare a unor imagini model, cât şi algoritmi eficienţi de reconstrucţie. În acest context a fost elaborată prima versiune a pachetului de programe SNARK, cu dezvoltările ulterioare, SNARK09 şi jSNARK. În prima parte a lucrării se descrie modul de utilizare a pachetului jSNARK pentru generarea de imagini model (fantome). Imaginea şi datele de proiecţie astfel obţinute sunt exportate şi utilizate în mediul de programare MATLAB pentru efectuarea unor experimente de reconstrucţie cu algoritmi iterativi de tip Kaczmarz.

Cuvinte-cheie:reconstrucţia algebrică a imaginilor; pachetul de programe jSNARK; algoritmul Kaczmarz.

Introducere: Reconstrucţia de imagini din proiecţii reprezintă o problemă actuală, iar cercetătorii în domeniu au propus numeroşi algoritmi pentru a o rezolva (vezi [2, 4]). Pentru a evalua şi compara performanţa diverselor metode se recomandă efectuarea de experimente numerice exhaustive. Aplicaţia jSNARK a fost dezvoltată pentru a oferi posibilitatea generării de fantome, imagini reprezentând secţiuni transversale anatomice, precum şi date de proiecţie, simulate într-un mod realist. De asemenea, implementează algoritmi clasici şi permite scrierea de programe definite de utilizator.

Prima variantă de SNARK a fost dezvoltată de Richard Gordon în 1970. Următoarele două versiuni, SNARK77 şi SNARK89 au fost scrise în limbajul de programare FORTRAN, iar la SNARK93 s-a folosit FORTRAN77. Începând cu SNARK05 s-a trecut la implementare în C++. Versiunile actuale, pe care le vom denumi generic SNARK, sunt SNARK09 (vezi documentaţia [1]), în C++ şi jSNARK (vezi documentaţia [5]), scrisă în limbajul JAVA.

Prin reconstrucţie de imagini din proiecţii înţelegem obţinerea imaginii unei distribuţii bidimensionale folosind aproximări ale integralelor sale linie de-a lungul unui număr finit de drepte ale căror locaţii sunt cunoscute (pentru mai multe detalii vezi [2]).

În SNARK [2], o imagine este determinată de o regiune pătrată, cu centrul în originea sistemului cartezian şi de o funcţie de două variabile, care are valoarea zero în afara acestei regiuni.

Vizualizează articolul complet

Vom numi densitate valoarea funcţiei într-un punct (x, y). În tomografia computerizată, densitatea unei imagini într-un punct (x, y) reprezintă coeficientul de atenuare pentru fascicolul de raze X ce trece prin  ţesuturile de la punctul (x, y). Aceşti coeficienţi ai diferitelor ţesuturi sunt în general cunoscuţi (vezi [2, Tabelul 4.1]). Se presupune că aerul are densitate nulă.

Se realizează o discretizare a regiunii imaginii folosind un grid cu p elemente şi se obţin n = p x p pătrate, denumite pixeli. Se consideră o scanare cu m raze de la surse la receptori. Obţinem o matrice de scanare de dimensiune m × n şi un vector de măsurători b din Rm. În Figura 1 este ilustrat modul în care se calculează valorile componentelor matricei A.  Rezolvând sistemul de ecuaţii liniare Ax = b, se calculează o aproximare a imaginii scanate.

Concluzii: În această secţiune vom prezenta experimente de reconstrucţie relativ la imaginea generată în Secţiunea 2. Datele obţinute prin utilizarea pachetului jSNARK: imaginea exactă (vezi Figura 5), matricea de scanare A şi termenul liber b, sunt exportate pentru a putea fi prelucrate în mediul de programare MATLAB. Acesta se foloseşte ulterior la rezolvarea sistemului Ax = b pentru reconstrucţia imaginii exacte. Împărţim valoarea fiecărui pixel al acesteia la 255 şi obţinem imaginea din Figura 6, ilustrată în MATLAB, cu proprietatea că fiecare componentă aparţine intervalului [0, 1].

Pentru o aproximaţie iniţială x0 = 0, aplicăm algoritmul Kaczmarz, respectiv algoritmul Kaczmarz cu o constrângere definită prin (2) cu . Pentru 500 de iteraţii rezultă cele două reconstrucţii din Figura 7, respectiv Figura 8. Se observă că în urma utilizării unei constrângeri se obţine o aproximaţie mai bună a imaginii exacte.

Bibliografie

  1. DAVIDI, R.; HERMAN, G. T.; KLUKOWSKA, J.: SNARK09: a Programming System for the Reconstruction of 2D Images from 1D projections, 2012.
  2. HERMAN, G. T.: The Fundamentals of Computerized Tomography: Image Reconstruction from Projections, Second Edition, Springer – Verlag, London, UK, 2009.
  3. KACZMARZ, S.: Angenäherte auflösung von systemen linearer gleichungen. În: Bulletin International de l’Academie Polonaise des Sciences et des Lettres, vol. 53, 1937,
    355 – 357.
  4. POPA, C.: Projection Algorithms – Classical Results and Developments. Applications to Image Reconstruction. Lambert Academic Publishing – AV Akademikerverlag Gmbh & Co. KG, Saarbrücken, Germany, 2012.
  5. ROWLAND, S. : jSNARK v1.0.4: a Programming System for the Reconstruction of Images from Projections.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.