Disons que j'ai un 100000x100000 1 bit (canal K) tiff avec une ppp de 2000 et je veux réduire ce à une ppp de 200. Mon image résultante serait 10000x10000 image. Cela signifie-t-il que tous les 10 bits de l'image 1 bit correspondent à 1 pixel dans la nouvelle image? En passant, j'utilise libtiff et je lis le tiff 1 bit avec tiffreadscanline. Merci!bas de gamme grand 1 bit tiff à 8 bits en niveaux de gris/24 bits
Répondre
Cela signifie que tous les 100 bits de l'image 1 bit correspondent à 1 pixel dans la nouvelle image. Vous devez faire la moyenne de la valeur sur une zone de pixels de 1 x 10 pixels. Pour des niveaux de gris plus fluides, mieux vaut n bits où n est la profondeur de votre pixel cible, recouvrant partiellement la zone calculée avec les zones voisines (16x16px carrés 10x10px, donc leurs bordures superposées, pour un 8 en niveaux de gris.)
Il est important de comprendre pourquoi vous souhaitez effectuer une mise à l'échelle inférieure (en raison du support de sortie ou de la taille du fichier?). Comme SF l'a fait remarquer, les couleurs/niveaux de gris sont quelque peu interchangeables avec la résolution. S'il s'agit seulement de la taille du fichier, la compression perdue/perdue vaut aussi la peine d'être regardée ..
L'autre chose est de comprendre un peu les caractéristiques de votre image source. Par exemple, si l'image source est pixellisée (comme pour les images de journaux), vous risquez d'obtenir des motifs akward parce que la matrice de points est foirée. J'ai essayé une fois de restaurer une vieille image de papier journal, et je l'ai trouvé beaucoup de travail. J'ai fini par le convertir en échelle de gris d'abord avant d'améliorer l'image.
Je suggère d'expérimenter un peu avec VIPS ou Irfanview pour trouver les meilleurs résultats (c'est-à-dire quel est l'effet d'un certain algorithme de ré-échantillonnage sur la qualité de votre image). La raison de ces programmes (par exemple Photoshop) est que vous pouvez expérimenter avec l'interface graphique/ligne de commande tout en étant conscient du nom/paramètres des algorithmes qui le sous-tendent. Avec VIPS, vous pouvez contrôler la plupart des paramètres, sinon tous. [Modifier] TiffDump (fourni avec les binaires LibTiff) est une précieuse source d'informations. Il vous parlera de l'ordre des octets, etc. Ce que j'ai fait était de commencer avec une image connue. Par exemple, LibTIFF.NET est livré avec de nombreuses images de test, y compris b & w (certaines avec 0 = noir, d'autres avec 1 = noir). [/ Edit]
En fait, mon problème actuel est d'interpréter les bits dans l'image 1 bit. J'ai une image 1 x 200x144 pix et je veux juste la convertir en une image 8x 200x144 pix, alors que ma cartographie serait de 1 bit 0 est 255 (gris) et 1 bit 1 est 0 (gris). sur une image à 1 bit tiffreadscanline je reçois les bits suivants: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00 , 0x00,0x00,0x00,0x00, 0x00,0x00,0x00 je reçois seulement 25 bits mais la largeur de l'image de 1 bit est de 200. donc j'attends une taille de ligne de balayage de 200 aussi. Si je multiplie 25 par 8 je reçois 200 mais où aurais-je des données? Merci. –
Vous obtenez 25 octets 8 bits chacun pour un total de 200 bits = pixels. En augmentant la profondeur à 8 bits, vous perdrez 7 bits dans un octet de l'image résultante. C'est à vous (en utilisant le décalage de bits, les masques et les opérateurs logiques) d'extraire un seul bit de l'octet. –
Je suis d'accord avec SF. S'il vous plaît voir mon [Modifier] dans mon message. – Adriaan
Gardez à l'esprit, cependant, que cela brouille l'image en plus du sous-échantillonnage. – Joey
Avec un rayon de flou de 1.3px, l'effet ajoutera probablement à la qualité (subjective) plutôt que de la réduire, et j'ai trouvé que la mise à l'échelle de 100 à 256 niveaux de gris est vraiment laide dans les zones dégradées de l'image. –
correction: 0.8px rayon de flou. –