ecotaxa / ecotaxa_front

Front end of the EcoTaxa application
Other
6 stars 6 forks source link

Améliorer la netteté des textes et barres d'échelle des images importées de l'UVP6 #639

Open picheral opened 3 years ago

picheral commented 3 years ago

Je ne suis pas satisfait par cette netteté qui donne aussi l'impression que les vignettes sont de mauvaise qualité. image

picheral commented 3 years ago

Cette netteté varie avec le facteur de Zoom.... Le problème est qu'on zoome souvent à 200% sur ces vignettes.

grololo06 commented 3 years ago

L'image originale est + jolie?

grololo06 commented 3 years ago

Ah il faudrait aussi un object ID ou un project ID pour voir dans l'appli.

picheral commented 3 years ago

Elle n'a pas de legende car celle-ci est ajoutée lors de l'import qui fait aussi l'inversion en utilisant les paramètres fournis par UVPapp.

picheral commented 3 years ago

Même pb pour toutes les vignettes à 200%

grololo06 commented 3 years ago

Les images uvp6 sont de faible dimension, quelques dizaines de pixels dans chaque dimension. Corrolaire, elles sont toutes petites en taille de fichier. Le texte et la barre sont à la résolution de l'image:

Capture d’écran de 2021-03-08 16-33-46

Le texte et la barre ne peuvent pas être d'une meilleure résolution (plus 'nets') s'ils sont inclus dans l'image avec ses caractéristiques d'origine. On peut redimensionner l'image pendant l'import, au prix de temps d'import et de taille de stockage (à mesurer).

grololo06 commented 3 years ago

En laissant scale=1 dans vignette.txt: 0001 Taille 1 515 octets

En mettant scale=10 dans vignette.txt: 0001 Taille 1 777 octets

La barre ici est bien nette mais souffre de légers défauts, à commencer par sa taille relative qui est différente :) Par contre on n'a 'perdu' que 200 octets, merci le format PNG.

grololo06 commented 3 years ago

En supposant que #641 est corrigé, reste à savoir ce que l'on fait. Upscaling auto en dessous d'une certaine dimension? Laisser la responsabilité au créateur de la data?

picheral commented 3 years ago

A discuter rapidement ensemble mais je propose d'assister l'utilisateur en faisant un upscaling auto pour améliorer l'apparence sans que l'utilisateur ne s'en soucie.

jiho commented 3 years ago

Ajouté à la discussion hebdomadaire.

Quelques points:

grololo06 commented 3 years ago

L'upscaling ce serait pour agrandir l'image avant de rajouter la légende, donc on aurait + de pixels pour l'écrire. Essai avec scale=2, bug #641 corrigé et même fonte: 0001 Oups! Taille 3 988 octets. Essai avec scale=1 et autre fonte + lisible (https://larsenwork.com/monoid/): 0001 Taille 1561 octets Autre essai scale=1 et une fonte proposée par jo: https://www.dafont.com/vcr-osd-mono.font 0001 Taille 1509 Je pense qu'on peut oublier l'upscaling, la légende prend + de place que l'image dans le fichier final. On pourrait effectivement avoir du + joli en utilisant des bitmaps au lieu des fonts ttf vectorielles, mais ça suppose de calquer le bon bitmap en fonction de la taille de l'image. Je continue de chercher...

jiho commented 3 years ago

Il faut que la taille de la légende soit fixe et, si possible, de 31px de hauteur, sur toutes les images (parce que c'est comme ça sur toutes les autres images et que ça nous permet de couper ce qu'il faut pour faire du deep learning dessus ensuite). Vu cette contrainte + le fait qu'on veut des polices qui soient nettes au pixel + qu'on a que quelques caractères à écrire (1mm, 2mm, 10mm en gros => 1,2,0,m), je pense que la meilleure solution est de faire une "police" à la main et c'est donc comme cela que j'ai procédé pour ISIIS. Je suggère de juste reprendre le même code (qui est en python etc.: https://github.com/jiho/apeep/blob/d8cdb0f3417220eec92463561c046e3f9cd946bf/apeep/measure.py#L246 ) plutôt que de passer du temps à chercher une autre solution.

Par ailleurs, comme je l'ai déjà exprimé, je reste convaincu que la place de ce code n'est pas dans EcoTaxa mais plutôt dans UVPapp ou EcoPart. Ou alors on fait un truc dans EcoTaxa qui génère les scale bar pour toutes les images, soit à l'import soit de façon dynamique à l'affichage --et alors on peut même le faire en HTML--, en fonction de la px size (et on met un champ px size en dur qq part) -> #642

grololo06 commented 3 years ago

Bon, après hacking ça donne ça en mettant une bordure visible. 0001 Effectivement c'est très lisible, mais le vignette.txt est majoritairement ignoré. On a de quoi discuter!

picheral commented 3 years ago

Le code d'UVPapp fournit des vignettes SANS le scale bar. Celui ci est ajouté par Ecotaxa lors de l'import en observant les consignes du fichier de paramétrage associé aux données. L'idée était justement de permettre ultérieurement de créer un scale bar dynamique dans Ecotaxa... et de résoudre tous ces problèmes un jour.

grololo06 commented 3 years ago

Conclusion 11/03/2021: modif paramètres suivants du vignette.txt scalebarsize_mm -> texte de la légende, seulement 0,1,2, signe micron et lettre 'm' fontheight_px -> ignoré scale -> ignoré Pixel_Size -> pris en compte pareil

Border 0 pour + de place pour l'image