Initiation à la vision par ordinateur

Installation ou configuration

Instructions détaillées sur la configuration ou l’installation de la vision par ordinateur.

Pour cette série et les suivantes de vision par ordinateur, j’utiliserai Python 2 comme langage de programmation. Python est un choix courant pour la communauté scientifique, il est gratuit, il contient de nombreuses bibliothèques gratuites et open source, et si vous débutez dans la programmation, c’est l’une des plus simples à apprendre et à commencer à programmer.

Maintenant configuré, si vous utilisez Linux, vous avez probablement déjà python, ouvrez simplement le terminal et tapez ‘python’ pour vérifier si tout fonctionne déjà. Les autres, peut vérifier [ce lien][1] et télécharger python 2.7.

Deuxièmement, nous devrons installer les bibliothèques que nous allons utiliser dans le code source. Maintenant, une note ici, cette configuration est conçue pour cet exemple, dans les étapes ultérieures, nous ajouterons différentes bibliothèques et, bien sûr, différentes applications de vision par ordinateur peuvent nécessiter des bibliothèques spécifiques telles que OpenCV. Nous n’aurons besoin que d’une seule bibliothèque à installer dans notre système pour exécuter le code. Lorsque j’utilise python, j’installe généralement des dépendances à l’aide de ‘pip’. C’est un outil simple pour installer les modules python, vous pouvez également le vérifier via [ce lien][2]

Nous sommes maintenant prêts à installer la bibliothèque dont nous avons besoin, PyPNG. Si vous utilisez pip tout ce que vous devez faire est

pip installer PyPNG

dans le terminal si vous utilisez Linux/Mac, dans la ligne de commande si vous utilisez Windows.

De plus, pour ces exercices, vous devez obtenir des images qui peuvent être trouvées dans le lien github à côté du code source et des cahiers ipython.

https://github.com/Skorkmaz88/compvis101

Maintenant, nous devrions être prêts à faire de l’exercice

[1] : https://www.python.org/download/releases/2.7/ [2] : https://pip.pypa.io/en/stable/installing/

Exemples

Il s’agit d’une série d’exercices Python de traitement d’image et de vision par ordinateur très simples, conçus pour introduire ces sujets avec peu de travaux pratiques. Je suis désolé d’avance pour les erreurs de débutant, il est encore en cours de développement. Dans cette série, je limiterai les images numériques que nous pouvons utiliser aux fichiers PNG par souci de simplicité, dont je parlerai également du sujet de la compression d’image.

Veuillez cloner le référentiel si vous ne l’avez pas déjà fait, ou vous pouvez simplement le télécharger [ici][1] via Github :

git clone https://github.com/Skorkmaz88/compvis101

[1] : https://github.com/Skorkmaz88/compvis101

Il y a deux fichiers que vous pouvez utiliser, l’un d’eux est tutorial0.py et l’autre est readingImages.ipynb, le second est un cahier ipython si vous préférez l’utiliser, vous pouvez le faire. Mais deux fichiers font la même chose.

Le code a des explications dans les commentaires, je suis

<pré>

bibliothèques

importer png

Nous créons une image en niveaux de gris comme décrit dans notre texte.

Pour faire ça simplement, on crée un tableau 2D en python.

x et y, x étant horizontal et y étant des directions verticales.

x = [] y = []

Jouez avec ces valeurs de pixels pour obtenir différentes images en niveaux de gris, elles doivent être

dans la plage de 0 à 255.

blanc = 255 gris = 128 noir = 0 largeur = 100 hauteur = 300

Ajouter un rectangle de 100 x 100 comme juste des pixels de valeur blanche (255)

pour je dans la plage (0, 100): for j in range(0,100): y.append(white); # Pixel (i,j) is being set to a value, rest is coding trick to nest two lists x.append(y) y = []

Ajouter un rectangle de 100 x 100 comme juste des pixels de valeur gris moyen (128)

pour je dans la plage (0, 100): for j in range(0,100): y.append(gray); x.append(y) y = []

Ajouter un rectangle de 100 x 100 comme juste des pixels de valeur noire (0)

pour je dans la plage (0, 100): for j in range(0,100): y.append(black); x.append(y) y = []

fichier image de sortie

f = open(‘out.png’, ‘wb’) w = png.Writer(width, height , grayscale=True, bitdepth=8) w.écrire(f, x) f.close()

Si tout s’est bien passé, vous devriez avoir 3 rectangles alignés verticalement blanc, gris et noir

Vérifiez votre dossier de travail

PARTIE 2

Lire une image en niveaux de gris et la convertir en binaire

Cette fois nous allons binariser une image en niveaux de gris, pour cela nous lirons des pixels et selon le seuil que nous fixerons

nous déciderons si ce pixel doit être blanc ou noir

Ce fichier est à l’origine une image png 8 bits, peut être trouvé dans le référentiel github, vous ne devez utiliser que ce type de

images si vous voulez changer l’image.

f = ouvrir(’./img/lenaG.png’, ‘r’)

r=png.Reader(fichier=f)

Vous aurez les détails de l’image, pour l’instant faites attention à la taille et à la profondeur de bits uniquement.

img = r.lire()

largeur = img[0] hauteur = img[1]

Valeur seuil pour la binarisation des images,

seuil = 128 print “La taille de l’image d’entrée est : “+ str(width)+ " pixels comme largeur, " + str(height) + " pixels comme hauteur”

f_out = open(’lenaBinary.png’, ‘wb’) w = png.Writer(width, height , grayscale=True, bitdepth=1)

pixels = img[2]

x = [] y = []

Parcourons l’image de Lena

pour la ligne en pixels : for pixel in row: p_value = pixel # Now here we binarize image in pixel level if p_value > threshold: p_value = 1 else: p_value = 0

    y.append(p_value);
x.append(y)
y = []

w.write(f_out, x) f_out.close()

Si tout a bien fonctionné, félicitations ! Vous avez créé une image à partir de zéro et effectué une première transformation au niveau du pixel sur une image existante. Vérifiez votre dossier de travail pour voir les nouvelles images