Documentation des fonctions

Ce document présente les différentes fonctions et Énumérations de traitement d’images disponibles pour le traitement d’images.

Ces fonctions sont divisées en sous-sections :

  • Les fonctions contenues dans Pur traitement d’images permettent d’utiliser le seuillage, la détection de contours,…

  • La section Workspaces contient les fonctions permettant d’extraire le workspace et de gérer les position relatives dans le workspace

  • La section Affiche permet d’afficher des images

  • Retouche d’image contient un grand nombre de fonctions qui permettent de compresser les images, y ajouter du texte, …

Pur traitement d’images

image_functions.threshold_hsv(list_min_hsv, list_max_hsv, reverse_hue=False, use_s_prime=False)

Prend une image RVB (résultat OpenCV imread) et retourne une image seuillée en fonction des valeurs de HSV (Teinte, Saturation, Valeur). Le pixel vaudra 1 s’il a une valeur entre min_v et max_v pour tous les canaux.

Paramètres
  • img (numpy.array) – Image BVR si rgb_space = faux

  • list_min_hsv (list[int]) – liste correspondant à [min_value_H,min_value_S,min_value_V]

  • list_max_hsv (list[int]) – liste correspondant à [max_value_H,max_value_S,max_value_V]

  • use_s_prime (bool) – Vrai si vous voulez utiliser le canal S comme S” = S x V, autrement classique

  • reverse_hue (bool) – Utile pour la couleur rouge car elle est aux deux extrêmes

Renvoie

image seuillée

Type renvoyé

numpy.array

image_functions.debug_threshold_color(color_hsv)

Retourne une image masquée afin de voir l’effet du seuillage des couleurs

Paramètres
  • img (numpy.array) – image OpenCV

  • color_hsv (ColorHSV) – Couleur utilisée pour le débogage

Renvoie

Image masquée

Type renvoyé

numpy.array

image_functions.morphological_transformations(morpho_type=<MorphoType.CLOSE: 3>, kernel_shape=(5, 5), kernel_type=<KernelType.ELLIPSE: 2>)

Prend une image en noir et blanc et y applique une transformation morphologique

Paramètres
  • im_thresh (numpy.array) – Image en noir et blanc

  • morpho_type (MorphoType) – CLOSE/OPEN/ERODE/DILATE => consultez OpenCV ou Google si vous ne savez pas ce que ces mots signifient.

  • kernel_shape (tuple[float]) – tuple correspondant à la taille du noyau

  • kernel_type (KernelType) – RECT/ELLIPSE/CROSS => voir sur OpenCV

Renvoie

image après traitement

Type renvoyé

numpy.array

image_functions.get_contour_barycenter()

Retourne le barycentre d’un contour OpenCV

Paramètres

contour (OpenCV Contour) –

Renvoie

Barycentre X, Barycentre Y

Type renvoyé

int, int

image_functions.get_contour_angle()

Retourne l’orientation d’un contour en fonction de son plus petit côté afin d’être correctement orienté pour le gripper

Paramètres

contour (OpenCV Contour) – contour

Renvoie

Angle en radians

Type renvoyé

float

image_functions.biggest_contour_finder()
image_functions.biggest_contours_finder(nb_contours_max=3)

Fonction permettant de trouver le contour le plus grand d’une image binaire

Paramètres
  • img (numpy.array) – Image binaire

  • nb_contours_max (int) – Nombre maximal de contours qui peuvent être retournés

Renvoie

Plus grand contour trouvé

Type renvoyé

list[OpenCV Contour]

image_functions.draw_contours(contours)

Dresse une liste des contours d’une image et retourne le schéma de l’image

Paramètres
  • img (numpy.array) – Image

  • contours (list[OpenCV Contour]) – List des contours

Renvoie

Image avec schéma

Type renvoyé

numpy.array

image_functions.draw_barycenter(cx, cy, color=(255, 0, 255), marker_size=10, thickness=2)

Dessine le barycentre d’un contours sur une image et retourne l’image dessinée

Paramètres
  • img (numpy.array) – Image

  • cx (int) – Barycentre X

  • cy (int) – Barycentre Y

  • color (list[uint8, utin8, uint8]) – (R, V, B) couleurs du marqueur

  • marker_size (int) – taille du marqueur

  • thickness (int) – épaisseur du marqueur

Renvoie

Image avec schéma

Type renvoyé

numpy.array

image_functions.draw_angle(cx, cy, angle, color=(0, 0, 255), arrow_length=30, thickness=2)

Dessine une flèche qui représente l’orientation d’un objet surune image et retournez l’image du dessin

Paramètres
  • img (numpy.array) – Image

  • cx (int) – Barycentre X

  • cy (int) – Barycentre Y

  • angle – angle à afficher

  • color (list[uint8, utin8, uint8]) – (R, V, B) couleurs du marqueur

  • arrow_length (int) – longueur du marqueur de flèche

  • thickness (int) – épaisseur du marqueur de flèche

Renvoie

Image avec schéma

Type renvoyé

numpy.array

Workspaces

image_functions.extract_img_workspace(workspace_ratio=1.0)

Extrait la zone de travail d’une image grâce aux 4 marqueurs Niryo

Paramètres
  • img (numpy.array) – Image OpenCV qui contient les 4 marqueurs Niryo

  • workspace_ratio (float) – Ration entre la largeur et la hauteur de la zone représentée par les marqueurs

Renvoie

Image extraite et déformée de la zone de travail

Type renvoyé

numpy.array

image_functions.debug_markers(workspace_ratio=1.0)

Affiche les marqueurs détectés dans une image

Paramètres
  • img (numpy.array) – Image OpenCV qui contient les marqueurs Niryo

  • workspace_ratio (float) – Ration entre la largeur et la hauteur de la zone représentée par les marqueurs

Renvoie

(statut, image annotée)

Type renvoyé

numpy.array

image_functions.relative_pos_from_pixels(x_pixels, y_pixels)

Transforme la position des pixels en une position relative

Paramètres
  • img (numpy.array) – Image où l’objet est détecté

  • x_pixels (int) – Coordonnées X

  • y_pixels (int) – Coordonnées Y

Renvoie

X relatif, Y relativ

Type renvoyé

float, float

Affiche

image_functions.show_img_and_check_close(img)

Affiche une image et vérifie si l’utilisateur veut fermer

Paramètres
  • window_name (str) – nom de la fenêtre

  • img (numpy.array) – Image

Renvoie

booléen indiquant si l’utilisateur souhaite quitter

Type renvoyé

bool

image_functions.show_img(img, wait_ms=1)

Affiche une image pendant une certaine durée

Paramètres
  • window_name (str) – nom de la fenêtre

  • img (numpy.array) – Image

  • wait_ms (int) – Temps d’attente en millisecondes

Renvoie

Valeur de la touche appuyée pendant l’affichage

Type renvoyé

int

image_functions.show_img_and_wait_close(img)

Affiche une image et attend que l’utilisateur la ferme

Paramètres
  • window_name (str) – nom de la fenêtre

  • img (numpy.array) – Image

Renvoie

Aucun

Type renvoyé

None

Retouche d’image

image_functions.compress_image(quality=90)

Compresse une image OpenCV

Paramètres
  • img (numpy.array) – Image OpenCV

  • quality (int) – Entier entre 1 et 100. Le plus haut il se situe, le moins d’informations il aura perdu, mais l’image compressée sera plus lourde

Renvoie

statut et chaîne représentant l’image compressée

Type renvoyé

bool, str

image_functions.uncompress_image()

Prend une image compressée et retourne une image OpenCV

Paramètres

compressed_image (str) – Image compressée

Renvoie

image OpenCV

Type renvoyé

numpy.array

image_functions.add_annotation_to_image(text, write_on_top=True)

Ajoute une annotation à une image

Paramètres
  • img (numpy.array) – Image

  • text (str) – Chaîne de texte

  • write_on_top (bool) – Si vous écrivez le texte sur le dessus

Renvoie

image avec du texte écrit dessus

Type renvoyé

numpy.array

image_functions.undistort_image(mtx, dist)

Utilise les intrinsèques de l’image pour soigner la distortion d’une image brute

Paramètres
  • img (numpy.array) – Image brute

  • mtx (list[list[float]]) – Matrice des intrinsèques de la camération

  • dist (list[list[float]]) – Coefficient de distortion

Renvoie

Image non distordue

Type renvoyé

numpy.array

image_functions.resize_img(width=None, height=None, inter=3)

Redimensionne une image. L’utilisateur doit préciser uniquement la largeur ou la hauteur s’il souhaite conserver le ratio de l’image

Paramètres
  • img (numpy.array) – Image OpenCV

  • width (int) – Largeur cible

  • height (int) – Hauteur cible

  • inter (long) – Drapeau d’interpolation OpenCV

Renvoie

Image redimensionnée

Type renvoyé

numpy.array

image_functions.concat_imgs(axis=1)

Concatène plusieurs images le long d’un axe

Paramètres
  • tuple_imgs (tuple[numpy.array]) – Tuple des images

  • axis (int) – 0 signifie verticalement, et 1 signifie horizontalement

Renvoie

Concatène l’image

Type renvoyé

numpy.array

Énumérations de traitement d’images

Les énumérations sont utilisées pour passer des paramètres spécifiques aux fonctions.

Liste des énumérations

class ColorHSV(value)[source]

MIN HSV, MAX HSV, Invert Hue (bool)

BLUE = ([90, 50, 85], [125, 255, 255], False)
RED = ([15, 80, 75], [170, 255, 255], True)
GREEN = ([40, 60, 75], [85, 255, 255], False)
ANY = ([0, 50, 100], [179, 255, 255], False)
class ColorHSVPrime(value)[source]

MIN HSV, MAX HSV, Invert Hue (bool)

BLUE = ([90, 70, 100], [115, 255, 255], False)
RED = ([15, 70, 100], [170, 255, 255], True)
GREEN = ([40, 70, 100], [85, 255, 255], False)
ANY = ([0, 70, 140], [179, 255, 255], False)
class ObjectType(value)[source]

Une énumération.

SQUARE = 4
TRIANGLE = 3
CIRCLE = -1
ANY = 0
class MorphoType(value)[source]

Une énumération.

ERODE = 0
DILATE = 1
OPEN = 2
CLOSE = 3
class KernelType(value)[source]

Une énumération.

RECT = 0
ELLIPSE = 2
CROSS = 1