Ho una matrice di float che rappresenta un'immagine (prima colonna). Voglio mostrare l'immagine su un QGraphicsSecene come QPixmap. Per farlo ho provato a creare una nuova immagine dal mio array con il costruttore QImage - QImage (const uchar * data, int width, int height, Format format). ho creato un nuovo unsigned char e colato ogni valore dalla mia matrice originale di nuovo char un unsigned, e poi ha cercato di creare una nuova immagine con il seguente codice:come creare un nuovo QImage da una serie di float
unsigned char * data = new unsigned char[fres.length()];
for (int i =0; i < fres.length();i++)
data[i] = char(fres.dataPtr()[i]);
bcg = new QImage(data,fres.cols(),fres.rows(),1,QImage::Format_Mono);
Il problema è quando si tenta di accedere le informazioni nel modo seguente:
bcg-> pixel (i, j);
Ricevo solo il valore 12345. Come posso creare un'immagine visibile dal mio array. Grazie
si può mostrare il galleggiante -> uchar conversione? – strager
E cosa rappresentano i dati originali? Ogni flottante 0..1 rappresenta il nero..white? Ci sono canali di colore o semplicemente in scala di grigi? – strager
Non è necessario creare QImage sull'heap, btw. È implicitamente condiviso (copy-on-write). –