manipulation des images irm sur navigateur - informatique humaine et médicale cse 2014

28
KELAS FOREX PERCUMA

Upload: tarik-zakaria-benmerar

Post on 15-Jul-2015

208 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

MANIPULATION DES IMAGES IRM SUR

NAVIGATEUR

Tarik Zakaria Benmerar

Equipe ParIMed

Page 2: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

LES LOGICIELS EXISTANTS DE MANIPULATION DES IMAGES IRM

Page 3: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

LES APPORTS DU NAVIGATEUR

Zéro Installation.

Environnement d’exécution plus sûr (Sandboxing).

Pervasivité (Exécution sur PC, mobile, tablette, etc.).

Facilité d’accès au logiciel (Un seul URL à taper).

Centralisation de la maintenance.

Page 4: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

NÉANMOINS LE NAVIGATEUR EST UN ENVIRONNEMENT A PART.

Page 5: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

LES ÉTAPES À SUIVRE POUR MANIPULER UNE IMAGE IRM(FORMAT NIFTI).

Page 6: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 1: LIRE LE FICHIER SOUS UNE STRUCTURE DE DONNÉES ARRAY BUFFER

Array Buffer représente des données brutes génériques de taille fixe.

Un Typed Array permet de lire le array buffer sous un format donné (Entier 32 bits, Float64 bits, etc.).

Deux Méthodes pour lire le fichier sour ArrayBuffer : Requête AJAX (Lecture à partir d’un url).

Lecture avec un champs fichier (Lecture locale).

Page 7: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 1: LIRE LE FICHIER SOUS UNE STRUCTURE DE DONNÉES ARRAY BUFFER

Récupération d’un Array Buffer avec Ajax : Utilisation d’un standard XHR2 responseType.

Pas de support dans jQuery Ajax.

Page 8: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 1: LIRE LE FICHIER SOUS UNE STRUCTURE DE DONNÉES ARRAY BUFFER

Patch XHR2 responseType pour jQuery :

Page 9: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 1: LIRE LE FICHIER SOUS UNE STRUCTURE DE DONNÉES ARRAY BUFFER

Récupération d’un Array Buffer avec champs file : Ecouter l’évènement change dans un champs file.

Utiliser un FileReader et la méthode readAsArrayBuffer() pour lire le fichier.

Page 10: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 1: LIRE LE FICHIER SOUS UNE STRUCTURE DE DONNÉES ARRAY BUFFER

$(‘#file’).on(‘change’, function ( e ) {var fileReader = new FileReader(),

file = e.target.files[ 0 ];//Read the file locallyfileReader.onload = function ( e )

{var fileArrayBuffer =

e.target.result;//Manipuler le fichier ici.}fileReader.readAsArrayBuffer( file

);});

Page 11: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 2 : PARSER LE FICHIER IRM SOUS FORMAT NIFTI

Utiliser un Typed Array pour extraire chaque partie du fichier d’IRM.

Page 12: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 2 : PARSER LE FICHIER IRM SOUS FORMAT NIFTI

Documentation NIFTI (Header + Volumes).

Page 13: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 2 : PARSER LE FICHIER IRM SOUS FORMAT NIFTI

Comment extraire une donnée de l’arraybuffer.var typeBytesNumber = new Array( 1

).byteLength,bytes = new ArrayType( size ),targetBytes = new Uint8Array( dataBuffer,

dataPointer, size * typeBytesNumber ),bytesShadow = new Uint8Array( bytes.buffer

);

Page 14: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 3 : AFFICHER UNE COUPE IRM.

Les volumes IRM sont en faites des intensités de signaux

Pour l’affichage 2D, on utilise Canvas2D.

Pour l’affichage 3D, on utilise WebGL.

Page 15: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 3 : AFFICHER UNE COUPE IRM.

Canvas2D. Créer un canvas avec hauter et largeur égale à la coupe. canvas.getImageData() pour éxtraire un image data comportant un typed array pour le canvas. Insérer le niveau de gris dans l’image data a partir des données IRM, en prenant en compte les intensités minimales et maximales. canvas.getPutImageData() pour l’affichage sur canvas.

Page 16: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 3 : AFFICHER UNE COUPE IRM.

Canvas2D.for( var i = 0; i < canvas.width; i++ ) {

for( var j = 0; j < canvas.height; j++ ) {var color = ( volume[ i + indiceCoupe * dimX + j *

dimX * dimY ] / max ) * 255;imgData.data[ ( i + j * canvas.width ) * 4 ] =

color;imgData.data[ ( i + j * canvas.width ) * 4 + 1 ] =

color;imgData.data[ ( i + j * canvas.width ) * 4 + 2 ] =

color;}

}

Page 17: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 3 : AFFICHER UNE COUPE IRM.

WebGL. La bibliothèque Three.JS offre le DataTexturepour avoir une texture a partir d’un typedarray.

Page 18: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

ETAPE 4 : INTERAGIR AVEC LA COUPE IRM.

Sur Desktop : Utilisation des évenementsjQuery (mousemove, mouseup, mouse down). Utiliser le plugin jQuery.mousewheel pour gérer la roulette.

Sur Mobile : Une bibliothèque tel que QuoJS fera l’affaire. Utiliser des évènements qui se déclenche pendant l’intéraction(Swiping, Pinching, Rotating), mais pas à la fin (Swipe, Pinch).

Page 19: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

D’AUTRES CONSIDIRATIONSTECHNIQUES.

Web Worker : Traitement sur un Thread pour ne pas bloquer l’interface utilisateur. Indexed Database : Stockage sur le client des images.

Page 20: Manipulation des images IRM sur navigateur - Informatique Humaine et Médicale CSE 2014

MERCI POUR VOTRE ATTENTION.