Outils pour utilisateurs

Outils du site


issue157:krita

This series is aimed at learning to make something of the old photos in my possession, and others in the public domain, due to their age. You, the reader, are welcome to tag along and, I hope, glean some small insight and perhaps an idea or two from time to time. No promises are made as to quality of the content, or potential errors and omissions. I am a computer scientist, not a true artist or a professional of image restoration. So please take all this as a best effort, but with no firm guarantees — much as is the case of most open-source software. In the previous part of this series, we worked on a photo that had been transformed to a digital format by simply photographing it using a modern mobile phone. In some cases, however, we do not have a paper copy of the original. For instance, in the latter days of chemical photography, many photo developing shops were delivering CD copies of your photos, already digitized. These also can have some drawbacks, which we will review today. Exhibit A is a typical holiday pic from the Sicilian city of Syracuse I took back in 2004, using a reflex 35 mm camera and standard photographic film of the time.

Cette série a pour but d'apprendre à faire quelque chose des vieilles photos en ma possession, ainsi que d'autres du domaine public du fait de leur âge. Vous, lecteur, êtes bienvenu pour m'accompagner et, j'espère, glaner quelques petites particularités et une idée ou deux de temps à autre. Je ne fais aucune promesse sur la qualité du contenu, ou sur les erreurs et omissions possibles. Je suis un scientifique en informatique, pas un artiste ou un vrai professionnel de la restauration des images. Aussi, merci de considérer ça comme mon meilleur effort, mais sans garanties fermes, comme c'est souvent le cas dans les logiciels Open Source.

Dans la partie précédente de cette série, nous avons travaillé sur une photo qui a été transformée en format numérique simplement en la photographiant avec un téléphone mobile moderne. Cependant, dans certains cas, nous n'avons pas de version papier de l'original. Par exemple, dans les derniers temps de la photographie argentique, beaucoup de labos photos de développement livraient des copies sur CD de vos photos, déjà numérisées. Ceci peut avoir quelques inconvénients, dont je vais parler aujourd'hui. Exhibit A est une photo de vacances typique de la ville sicilienne de Syracuse que j'ai prise en 2004, en utilisant un appareil photo reflex de 35 mm et un film photographique classique de l’époque.

The laboratory produced a CD with scans of each photo in JPEG file format. If we have Imagemagick installed, we can access EXIF information from the command line. In this case, we find that the original negative film was scanned by the laboratory with resolution 1840×1232 (top right). We can obtain most of this information even with the standard file utility, though the two programs are not quite in agreement as regards spatial resolution (bottom right). Anyhow, it is clear that modern digital photography has gone a long way to improve on what was standard technology 15 years back, with typical mobile phone camera pixel counts more than 4 times greater. But, what about file quality? If we zoom in on the image in Krita, we find that there are some visible defects.

Le laboratoire a réalisé un CD avec une numérisation de chaque photo au format de fichier JPEG. Si ImageMagick est installé chez vous, vous pouvez accéder à l'information EXIF à partir de la ligne de commande. Dans ce cas, vous trouverez que le film négatif original a été scanné par le laboratoire avec une résolution de 1840 x 1232 (en haut à droite).

Nous pouvons obtenir la plupart de ces informations avec un utilitaire de fichier classique, bien que les deux programmes ne soient pas tout à fait d'accord sur la résolution spatiale (en bas à droite).

Quoiqu'il en soit, il est clair que la photographie numérique moderne a largement amélioré ce qu'était la technologie standard d'il y a 15 ans, le nombre de pixels étant 4 fois plus grand dans un téléphone mobile typique. Mais qu'en est-il de la qualité du fichier ? Si vous agrandissez l'image dans Krita, vous trouverez qu'il y a des défauts visibles.

The sky is noticeably grainy. So are any other flat parts of the image, though it is slightly less noticeable on buildings or the ground. There are also the typical compression artifacts that the JPEG fractal algorithm produces, which are particularly marked along diagonal lines, and in the vicinity of curves. Unfortunately, this is information that has been lost during compression, and is a fact we will need to accept. From here, we can either reduce the image resolution to try to “repair” these defects, or seek out a better original to work from, for example, making a digital photograph of the original paper copy if we still have it in good state.

Le ciel est notablement grainé. De même dans d'autres aplats de l'image, bien que ce soit légèrement moins évident sur les bâtiments ou le sol. Il y a aussi les défauts typiques de compression que l'algorithme fractal du JPEG produit, qui sont particulièrement marqués dans les lignes diagonales et au voisinage des courbes. Malheureusement, ce sont des informations qui ont été perdues dans la compression et que nous devons accepter comme un fait. À partir de là, nous pouvons soit réduire la résolution de l'image pour essayer de « réparer » ces défauts, soit rechercher un meilleur original à partir duquel travailler, par exemple ,en faisant une photographie numérique de la copie papier d'origine si elle est encore en bon état.

If we suppose this digital scan is the only copy we have available, let us begin by reducing the resolution of our image. Bear in mind that the original resolution is 1840×1232, so a proportion of nearly (but not exactly) 1.5:1 or 3:2. This proportion is close to that of many traditional photographic paper sizes, though it may seem slightly weird to younger readers who would be more accustomed to digital image proportions of 4:3 as on standard monitors, or 16:10 / 16:9 as on panoramic monitors and some mobile phones. In Krita, we can bring this resolution down by using the tool at menu option “Image”, “Scale image to new size”, and then put in our new resolution. If we have the “Constrain proportions” checkbox set, we should just need to enter one of the dimensions, and the other will be calculated automatically. In this case, I entered 1200 pixels for the image width, and the program calculated the height as 803 pixels. Let us close in on the same area as before.

Si nous supposons que cette numérisation est le seul exemplaire disponible, commençons par réduire la résolution de notre image. Gardez à l'esprit que la résolution d'origine est de 1840 x 1232, soit une proportion d'à peu près (mais pas exactement) 1,5:1 ou 3:2. Cette proportion est proche de ce qu'étaient de nombreuses tailles de papier photographique traditionnel, bien que ça puisse paraître un peu bizarre aux lecteurs les plus jeunes qui sont plus accoutumés aux proportions des images numériques de 4:3 des écrans classiques ou celles de 16:10/16:9 des écrans panoramiques et de certains téléphones mobiles. Dans Krita, nous pouvons réduire cette résolution en utilisant un outil de l'option de menu « Image », « Scale image to new size » (Redimensionner à une autre taille), puis en saisissant la nouvelle résolution. Si nous avons coché la case « Constrain proportions » (Opacité), il suffira d'entrer une des dimensions et l'autre sera calculée automatiquement. Dans ce cas, j'ai mis 1 200 pixels pour la largeur de l'image et le programme a calculé la hauteur à 803 pixels. Faisons un zoom sur la même zone qu'auparavant.

We observe that, just by reducing the pixel resolution, most of the artifacts present in the sky have been ironed out. Those introduced by compression on diagonal lines and curves are still there, though perhaps a tad less pronounced. The close-up above is at a zoom factor of about 200%; it is clear that this image may be useful on screen as a wallpaper or in a presentation. However, it simply lacks information to be reproduced as a good-quality paper print - and there is not much we can do about this. Even in Krita, scaling our image back up to a larger resolution will not get us back any of the information lost. Let us try with 4500 x 3000 pixels.

Nous observons qu'en réduisant la résolution en pixels, la plupart des défauts présents dans le ciel ont été réduits. Ceux introduits par la compression sur les lignes diagonales et les courbes sont encore là, bien que moins prononcés. La vue de détail ci-dessus est un agrandissement à environ 200 % ; il est clair que cette image peut être utile à l'écran comme papier peint ou dans une présentation. Cependant, il manque quand même des informations pour qu'elle soit reproduite sur papier avec une bonne qualité et il n'y a pas grand chose à faire pour cela. Même dans Krita, la redimensionner à une plus grande échelle ne fera pas revenir toutes les informations perdues. Essayons à 4 500 x 3 000 pixels.

Image quality is not better at 4 500 x 3 000 than at 1 200×800 pixels, but it is not worse either. We can see that Krita does a pretty good job of scaling upwards by interpolating the colors of new pixels from those present at the lower resolution. But, obviously, it cannot introduce more information than is already present. Still, scaling downwards to a slightly lower resolution, and then back up, is a useful trick that can eliminate some of the artifacts introduced by excessive JPEG compression of the original. Being Krita, there are also tools to do this job automatically. Starting once more from our original image at 1840×1232 pixels, I selected the menu option “Filter”, “Enhance”, and the tool “Wavelet noise reducer” already used in a previous part of this series. This reduced the splotches in the sky, but did not affect the artifacts around lines and curves.

La qualité de l'image n'est pas meilleure à 4 500 x 3 000 qu'à 1 200 x 800 pixels, mais ce n'est pas pire non plus. Nous pouvons voir que Krita fait un bon boulot d'agrandissement en interpolant les couleurs des nouveaux pixels à partir de ceux présents dans la basse résolution. Mais, bien sûr, il ne peut ajouter aucune nouvelle information à celle déjà présente. Cependant, une réduction légère de l'échelle, suivie d'un retour à l'échelle précédente, est une bonne astuce pour éliminer certains des défauts introduits par la compression JPEG excessive de l'original.

Krita étant Krita, il y a aussi des outils pour faire ce travail automatiquement. Partant une fois de plus de notre image originale à 1 840 x 1 232 pixels, j'ai sélectionné dans le menu l'option « Filter », « Enhance » (Améliorer), puis l'outil « Wavelet noise reducer » (Réducteur de bruit en vaguelettes) déjà utilisé dans une partie précédente de cette série. Celui-ci réduit les taches dans le ciel, mais n'affecte pas les artefacts autour des lignes et des courbes.

Once the image quality was as good as it was going to get, I went back to the image as a whole. The scene was more or less satisfactory, with a nice yellowish tinge from the subset illuminating the building to the left. However, the sky lacked a bit of character for my taste. I set about remedying that by adding a new layer, on top of the original image. Then, using the gradient tool, I drew a vertical gradient over the sky on the new layer. Krita’s gradient tool, in its default settings, works by applying whatever brush color is active at the point where the gradient tool is applied, and then progressively working over to a completely transparent color at the point of release. Here, I applied the tool at the top of the image, and then released it halfway down to the bottom in a vertical line. However, I did not wish to superimpose the color on top of the original, but rather use the gradient as a way to increase color saturation. So, this new layer was combined not in “Normal” mode, but as “Saturation”. Any color can be used for this trick; transparent parts of the gradient will have no effect on the color of the original, and pixels with color will increase the original’s saturation in proportion to their color density. The end result is a more vibrant sky, that brings out a more interesting cloud formation and gives extra character to the scaffolding on the church at the opposite end of the piazza.

Une fois que la qualité de l'image a été aussi bonne qu'elle pouvait l'être, je suis revenu à une vision de l'image entière. La scène était plus ou moins satisfaisante, avec une jolie teinte jaunâtre du coucher de soleil illuminant le bâtiment de gauche. Cependant, le ciel manquait un peu de relief à mon goût. Pour corriger cela, j'ai ajouté un nouveau calque, par dessus l'image d'origine. Puis, en utilisant l'outil de dégradé, j'ai dessiné un dégradé vertical par-dessus le ciel sur le nouveau calque. L'outil de dégradé de Krita, dans ses réglages par défaut, travaille en appliquant la couleur active de la brosse, quelle qu'elle soit, à l'endroit où l'outil de dégradé est appliqué, et ensuite, s'étend avec une transparence croissante, devenant totale au point de relâchement. Ici, j'ai appliqué l'outil en haut de l'image, puis je l'ai relâché à mi-chemin du bas le long d'une ligne verticale. Cependant, je ne souhaitais pas superposer la couleur par dessus l'original, mais plutôt utiliser le dégradé comme une façon d'augmenter la saturation des couleurs. Aussi, ce calque n'était pas combiné en mode « Normal », mais en « Saturation ». N'importe quelle couleur peut être utilisée pour cette astuce ; les parties transparentes du dégradé n'auront aucun effet sur les couleurs de l'original, et les pixels colorés augmenteront la saturaton de l'original en proportion de leur densité de couleur. Le résultat final est un ciel plus vivant, qui fait ressortir une formation nuageuse plus intéressante et donne un relief supplémentaire à l'échafaudage de l'église à l'autre bout de la place.

Finally, I wished to increase the contrast between the darker street scene to the right, and the lighter buildings to the left. One way of doing this is to give the dark part a slightly colder color tinge, towards the green or blue. But, I did not want to reduce the amount of red and yellow in the sky and lighter buildings. Luckily, Krita has a very powerful tool that allows us to work on one color channel, controlling it from another. In the menu option “Filter”, “Adjust”, select “Cross-channel adjustment curves”. In this case, I wanted to alter the red channel. On the other hand, my control channel was to be “Lightness”. Then, I altered the curve to reduce the response to the left (darker side of the curve). In essence, what I was doing was to reduce the red component for all pixels with low lightness – i.e., the dark bits of the image. Since these are mostly in the right lower corner of the photo, this is the part that got reduced redness, thus increased green and blue.

Enfin, je souhaitais augmenter le contraste entre la scène de rue plus sombre à droite et les bâtiments plus clairs à gauche. Un façon de le faire est de donner à la partie sombre une teinte colorée légèrement plus froide, vers le vert ou le bleu. Mais je ne voulais pas réduire la quantité de rouge et de jaune dans le ciel et sur les immeubles plus clairs. Heureusement, Krita a un outil très puissant qui nous permet de travailler sur un canal de couleur, en le contrôlant à partir d'un autre.

Dans l'option de menu, « Filter », « Adjust », sélectionnez « Cross-channel ajustement curves » (Courbes d'ajustement inter-canaux). Dans ce cas-ci, je voulais toucher au canal rouge. En revanche, mon contrôle de canal devait être « Lightness » (Luminosité). Puis j'ai modifié la courbe pour réduire la réponse sur la gauche (partie plus sombre de la courbe). En substance, ce que je faisais, c'était de réduire la composante rouge de tous les pixels avec une faible luminosité, c'est-à-dire les éléments noirs de l'image. Comme ils sont principalement dans le coin en bas à droite de la photo, c'est cette partie qui voit le rouge diminuer, et par conséquent, le vert et le bleu augmenter.

The end result may lack the resolution we would wish for in modern times, but at least there are less niggling artifacts in the sky and architectural details, and the colors are bit more bright and joyful than in the original CD file. In this part of our series, we worked on a photograph that had been digitized professionally by the laboratory when our negative film was developed. At times, however, we no longer have access to this laboratory, or even to the paper prints. In such cases, using a flatbed scanner to digitize the negatives may be a solution. However, it does have its drawbacks, as we will see in the next episode. Until then, take care!

Le résultat final peut ne pas atteindre la résolution que vous souhaiteriez pour des photos modernes, mais, au moins, il y a moins de défauts gênants dans le ciel et les détails architecturaux et les couleurs sont un peu plus brillantes et joyeuses que dans le fichier original du CD.

Dans cette partie de la série, nous avons travaillé sur une photographie qui a été mumérisée professionnellement par un laboratoire quand le film négatif a été développé. Cependant, parfois, nous n'avons plus accès à ce laboratoire, ou même à des épreuves papier. Dans de tels cas, l'utilisation d'un scanner à plat pour numériser les négatifs peut être une solution. Cependant, il a sûrement ses propres inconvénients, comme nous le verrons dans le prochain épisode. Jusque-là, prenez soin de vous !

issue157/krita.txt · Dernière modification : 2020/06/14 14:26 de andre_domenech