Bonjour,
J'ai un tableau de unsigned shrort (2400*2400) qui contient les pixels de mon image.
Les valeurs correspondent à l'intensité du pixel et sont comprises entre 0 et 4096.
Je voudrais afficher cette image en niveau de gris.
J'ai essayer de faire une méthode avec mes connaissance et les informations que j'ai trouvé sur internet. L'affichage de l'image marche bien.
Mais il me reste encore 2 petits problèmes :
- la taille de la fenêtre est beaucoup trop grande, je ne réussi pas à la recadrer pour qu'elle rentre dans mon écran.
- certaines valeurs sont "faussées" et j'aimerai pouvoir choisir les valeurs limites, avec Matlab j'utilise caxis pour faire ça.
ui correspond à un widget et labelImage à un label.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void Image::afficherImg(unsigned short tab[]){ QImage imageVisu(2400, 2400, QImage::Format_Indexed8); imageVisu.setColorCount(4096); QVector<QRgb> grayscale; for (int i = 0; i < 4096; i++) { grayscale.append(qRgb(i, i, i)); } imageVisu.setColorTable(grayscale); long int h = 0; for(int x=0; x<2400; x++) { for(int y=0; y<2400; y++) { imageVisu.setPixel(x, y, tab[h]); h++; } } QPixmap imageConvertie; imageConvertie.convertFromImage(imageVisu); ui->labelImage->setPixmap(imageConvertie); ui->labelImage->resize(2400, 2400); }
Merci de votre aide.
Partager