0
votes

Convertir une matrice d'octet d'image de gris grisalcale 8bit en bufferedimage

J'ai un tableau d'octets contenant des données de l'image de gris grayscale 8 bits, que je dois convertir en bufferedimage. J'ai essayé de faire: xxx

Toutefois, l'objet de code> est null qui signifie que je vais faire quelque chose de mal ici.

Quelle est la bonne façon de faire une telle conversion?


0 commentaires

3 Réponses :


0
votes

J'ai réussi à faire la conversion de la résolution 640x480 la solution suivante: xxx

EDIT: Suppression du code inutile (merci à Marco13)


4 commentaires

Pourquoi pas type_byte_gray ?


Qu'est-ce que le rond est-il accompli ici?


@RustyX Il a également travaillé pour moi, bien que le niveau de contraste était trop bas et que certaines zones de l'image étaient super sombres. Avec le type_byte_indexed Tout va bien (j'ai utilisé http://rawpixels.net/ à faire une comparaison).


Utilisation de type_byte_indexed sans paramètre Explicit IndexColormodel , vous donnera un modèle par défaut, qui est le 216 Couleurs de sécurité Web + 40 gris. Vous perdrez certainement une fidélité ici. En outre, la recherche inverse qui arrive à l'aide de SETRGB sur un bufferedimage avec indexcolormodel est vraiment lent.



4
votes

Il y a deux bonnes façons de le faire, en fonction de votre cas d'utilisation.

Créez une nouvelle image grise et copiez-y les données. Cela gardera l'image "gérée", ce qui peut conduire à une meilleure performance de rendu (c'est-à-dire à l'écran). Mais il aura besoin de deux fois plus de mémoire et copier les données de votre entrée à l'image.

l'autre, consiste à créer directement l'image grise "autour de" vos données de pixel existantes. Ce sera plus rapide et n'utilisez presque aucun tas supplémentaire, car il évite de copier les données de pixel. Mais l'image ne sera pas gérée (comme le matrice de support est exposé et mutable).

Les deux options sont démontrées ci-dessous: xxx

si les données d'image N'est-ce pas dans l'espace de couleur gris linéaire, on pourrait utiliser un indexcolormodel pour mapper l'entrée dans une plage que vous souhaitez: xxx


0 commentaires

0
votes

Java xxx

kotlin xxx


0 commentaires