Passer au contenu du pied de page
AIDE PYTHON

scikit-image Python (Comment ça marche : Un guide pour les développeurs)

Scikit-image est une collection d'algorithmes conçus pour le traitement d'images en Python. Il est librement disponible et sans restriction, offrant un code de haute qualité, revu par des pairs d'une communauté active de bénévoles. Le projet Scikit-image a commencé chez Google en 2009 dans le cadre du programme Google Summer Code sous la direction de Stefan van der Walt et d'autres contributeurs de Scikit-image. Il visait à créer une bibliothèque Python pour le traitement d'images qui serait facile à utiliser, efficace et extensible pour des applications académiques et industrielles. In this article, we will learn about the Scikit-image Python imaging library and a PDF generation library from IronSoftware called IronPDF.

Démarrage

Pour en savoir plus sur Scikit-image, consultez le site officiel. De plus, Data Carpentry propose une excellente leçon sur le traitement d'images en Python utilisant Scikit.

Installation via pip

  • Assurez-vous d'avoir Python installé (au moins la version 3.10).
  • Ouvrez votre terminal ou invite de commande.

    • Mettez à jour pip :
    python -m pip install -U pip
    python -m pip install -U pip
    SHELL
    • Installez scikit-image via pip :
    python -m pip install -U scikit-image
    python -m pip install -U scikit-image
    SHELL
    • Pour accéder aux jeux de données de démonstration, utilisez :
    python -m pip install -U scikit-image[data]
    python -m pip install -U scikit-image[data]
    SHELL
    • Pour les packages scientifiques supplémentaires, y compris les capacités de traitement parallèle :
    python -m pip install -U scikit-image[optional]
    python -m pip install -U scikit-image[optional]
    SHELL

Exemple de Base

import skimage.io
import matplotlib.pyplot as plt

# Load an image from file
image = skimage.io.imread(fname='land.jpg')

# Display the image
plt.imshow(image)
plt.show()
import skimage.io
import matplotlib.pyplot as plt

# Load an image from file
image = skimage.io.imread(fname='land.jpg')

# Display the image
plt.imshow(image)
plt.show()
PYTHON

Filtres

import skimage as ski

# Load a sample image from the scikit-image default collection
image = ski.data.coins()

# Apply a Sobel filter to detect edges
edges = ski.filters.sobel(image)

# Display the edges
ski.io.imshow(edges)
ski.io.show()
import skimage as ski

# Load a sample image from the scikit-image default collection
image = ski.data.coins()

# Apply a Sobel filter to detect edges
edges = ski.filters.sobel(image)

# Display the edges
ski.io.imshow(edges)
ski.io.show()
PYTHON

Scikit-image, souvent abrégé en skimage, est une bibliothèque Python puissante pour les tâches de traitement d'images. Elle est construite sur les tableaux NumPy, SciPy et matplotlib, et fournit diverses fonctions et algorithmes pour manipuler et analyser des images. skimage.data.coins() est utilisé pour accéder aux images d'échantillons de la bibliothèque. skimage.filters fournit l'accès aux filtres intégrés et aux fonctions utilitaires.

Caractéristiques clés de Scikit-image

1. Filtrage d'Image et Détection de Bordures

from skimage import io, filters

# Load an image
image = io.imread('image.jpg')

# Apply Gaussian blur
blurred_image = filters.gaussian(image, sigma=1.0)

# Apply Sobel edge detection
edges = filters.sobel(image)

# Display the original image, blurred image, and edges
io.imshow_collection([image, blurred_image, edges])
io.show()
from skimage import io, filters

# Load an image
image = io.imread('image.jpg')

# Apply Gaussian blur
blurred_image = filters.gaussian(image, sigma=1.0)

# Apply Sobel edge detection
edges = filters.sobel(image)

# Display the original image, blurred image, and edges
io.imshow_collection([image, blurred_image, edges])
io.show()
PYTHON

Sortie

scikit-image Python (Comment ça marche : Un guide pour les développeurs) : Figure 1 - Sortie de filtrage d'image et de détection de bordures

2. Extraction de Caractéristiques avec HOG (Histogramme des Gradients Orientés)

from skimage import io, color, feature

# Load an example image and convert to grayscale
image = io.imread('image.jpg')
gray_image = color.rgb2gray(image)

# Compute HOG features and visualize them
hog_features, hog_image = feature.hog(gray_image, visualize=True)

# Display the original image and the HOG image
io.imshow_collection([image, gray_image, hog_image])
io.show()
from skimage import io, color, feature

# Load an example image and convert to grayscale
image = io.imread('image.jpg')
gray_image = color.rgb2gray(image)

# Compute HOG features and visualize them
hog_features, hog_image = feature.hog(gray_image, visualize=True)

# Display the original image and the HOG image
io.imshow_collection([image, gray_image, hog_image])
io.show()
PYTHON

Sortie

scikit-image Python (Comment ça marche : Un guide pour les développeurs) : Figure 2 - Sortie d'extraction de caractéristiques

3. Transformation Géométrique - Redimensionnement et Rotation

from skimage import io, transform

# Load an image
image = io.imread('image.jpg')

# Resize image by dividing its dimensions by 2
resized_image = transform.resize(image, (image.shape[0] // 2, image.shape[1] // 2))

# Rotate image by 45 degrees
rotated_image = transform.rotate(image, angle=45)

# Display the original image, resized image, and rotated image
io.imshow_collection([image, resized_image, rotated_image])
io.show()
from skimage import io, transform

# Load an image
image = io.imread('image.jpg')

# Resize image by dividing its dimensions by 2
resized_image = transform.resize(image, (image.shape[0] // 2, image.shape[1] // 2))

# Rotate image by 45 degrees
rotated_image = transform.rotate(image, angle=45)

# Display the original image, resized image, and rotated image
io.imshow_collection([image, resized_image, rotated_image])
io.show()
PYTHON

Sortie

scikit-image Python (Comment ça marche : Un guide pour les développeurs) : Figure 3 - Sortie de transformation géométrique

4. Débruitage d'Image avec Filtre de Variation Totale

from skimage import io, restoration

# Load a noisy image
image = io.imread('image.jpg')

# Apply total variation denoising
denoised_image = restoration.denoise_tv_chambolle(image, weight=0.1)

# Display the noisy image and the denoised image
io.imshow_collection([image, denoised_image])
io.show()
from skimage import io, restoration

# Load a noisy image
image = io.imread('image.jpg')

# Apply total variation denoising
denoised_image = restoration.denoise_tv_chambolle(image, weight=0.1)

# Display the noisy image and the denoised image
io.imshow_collection([image, denoised_image])
io.show()
PYTHON

Sortie

scikit-image Python (How It Works: A Guide for Developers): Figure 4 - Image Denoising Sortie

Vous pouvez en savoir plus sur le traitement d'images et le tableau NumPy sur la page officielle.

Présentation de IronPDF

scikit-image Python (Comment ça marche : Un guide pour les développeurs) : Figure 5 - IronPDF : La bibliothèque PDF Python

IronPDF est une bibliothèque robuste pour Python conçue pour gérer la création, l'édition et la signature de documents PDF en utilisant HTML, CSS, images et JavaScript. Il privilégie l'efficacité des performances et fonctionne avec une utilisation minimale de la mémoire. Les fonctionnalités clés incluent :

  • Conversion HTML en PDF : Convertissez des fichiers HTML, des chaînes HTML et des URL en documents PDF, en tirant parti de capacités comme le rendu de pages web en utilisant le moteur de rendu PDF de Chrome.

  • Support multiplateforme : Compatible avec Python 3+ sur Windows, Mac, Linux et diverses plateformes cloud. IronPDF est également accessible pour .NET, Java, Python et Node.js.

  • Édition et signature : Personnalisez les propriétés des PDF, appliquez des mesures de sécurité telles que des mots de passe et des permissions, et appliquez des signatures numériques sans accroc.

  • Modèles de Pages et Paramètres : Créez des mises en page de PDF avec des fonctionnalités telles que des en-têtes, pieds de page, numéros de pages, marges ajustables, tailles de papier personnalisées et conceptions réactives.

  • Conformité aux Normes : Respecte strictement les normes PDF telles que PDF/A et PDF/UA, assure la compatibilité de l'encodage de caractères UTF-8, et gère efficacement des actifs tels que des images, feuilles de style CSS et polices.

Installation

pip install ironpdf 
pip install scikit-image
pip install ironpdf 
pip install scikit-image
SHELL

Générer des Documents PDF en utilisant IronPDF et Scikit Image

Prérequis

  1. Assurez-vous que Visual Studio Code est installé en tant qu'éditeur de code
  2. La version 3 de Python est installée

Pour commencer, créons un fichier Python pour ajouter nos scripts.

Ouvrez Visual Studio Code et créez un fichier, scikitDemo.py.

Installez les bibliothèques nécessaires :

pip install scikit-image
pip install ironpdf
pip install scikit-image
pip install ironpdf
SHELL

Ajoutez ensuite le code Python ci-dessous pour démontrer l'utilisation des packages Python IronPDF et scikit-image.

from skimage import io, filters
from ironpdf import * 

# Apply your license key
License.LicenseKey = "YOUR_LICENSE_KEY"

# Load an image
image = io.imread('image.jpg')

# Apply Gaussian blur
blurred_image = filters.gaussian(image, sigma=1.0)

# Apply Sobel edge detection
edges = filters.sobel(image)

# Save the results to a file
io.imshow_collection([image, blurred_image, edges]).savefig('ironPdf-skimage.png')

# Convert the saved image to a PDF document
ImageToPdfConverter.ImageToPdf("ironPdf-skimage.png").SaveAs("ironPdf-skimage.pdf")

# Display the images
io.show()
from skimage import io, filters
from ironpdf import * 

# Apply your license key
License.LicenseKey = "YOUR_LICENSE_KEY"

# Load an image
image = io.imread('image.jpg')

# Apply Gaussian blur
blurred_image = filters.gaussian(image, sigma=1.0)

# Apply Sobel edge detection
edges = filters.sobel(image)

# Save the results to a file
io.imshow_collection([image, blurred_image, edges]).savefig('ironPdf-skimage.png')

# Convert the saved image to a PDF document
ImageToPdfConverter.ImageToPdf("ironPdf-skimage.png").SaveAs("ironPdf-skimage.pdf")

# Display the images
io.show()
PYTHON

Explication du code

Ce bribes de code démontre comment utiliser scikit-image (skimage) et IronPDF ensemble pour traiter une image et convertir les résultats en un document PDF. Voici une explication de chaque partie :

  1. Instructions d'Importation : Importe les fonctions nécessaires de scikit-image pour le chargement d'images et le filtrage d'images, et importe la fonctionnalité IronPDF.

  2. Application de la Clé de Licence : Définit la clé de licence pour IronPDF. Cette étape est nécessaire pour utiliser les fonctionnalités d'IronPDF.

  3. Chargement et Traitement d'une Image : Charge une image nommée 'image.jpg' en utilisant la fonction io.imread de scikit-image. Applique ensuite un flou Gaussien à l'image chargée en utilisant filters.gaussian avec une valeur sigma de 1.0, et applique la détection de bordures de Sobel à l'image chargée en utilisant filters.sobel.

  4. Affichage et Sauvegarde des Résultats : io.imshow_collection([image, blurred_image, edges]).savefig('ironPdf-skimage.png') : Sauvegarde une collection d'images (original, floue et bordures) comme 'ironPdf-skimage.png'.

  5. Conversion de l'Image en PDF : ImageToPdfConverter.ImageToPdf("ironPdf-skimage.png").SaveAs("ironPdf-skimage.pdf") : Convertit l'image PNG sauvegardée en un document PDF utilisant la fonctionnalité d'IronPDF.

  6. Affichage des Images : io.show() : Affiche les images dans une fenêtre graphique.

Ce bribes de code combine les capacités de scikit-image pour le traitement d'images et d'IronPDF pour convertir des images traitées en documents PDF. Il démontre le chargement d'une image, l'application d'un flou gaussien et de la détection de bordures de Sobel, leur sauvegarde comme un fichier PNG, la conversion du PNG en PDF utilisant IronPDF, et l'affichage des images traitées. Cette intégration est utile pour les tâches où des images doivent être traitées, analysées, et documentées au format PDF, comme dans la recherche scientifique, les rapports d'analyse d'images, ou les flux de travail de génération de documents automatisés.

Sortie

scikit-image Python (Comment ça marche : Un guide pour les développeurs) : Figure 6 - Entrée des Images

PDF

scikit-image Python (How It Works: A Guide for Developers): Figure 7 - PDF Sortie

Licence IronPDF

IronPDF fonctionne avec une clé de licence pour Python. IronPDF pour Python offre une licence d'essai gratuite pour permettre aux utilisateurs de découvrir ses vastes fonctionnalités avant d'acheter.

Placez la clé de licence au début du script avant d'utiliser le package IronPDF :

from ironpdf import * 
# Apply your license key
License.LicenseKey = "YOUR_LICENSE_KEY"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "YOUR_LICENSE_KEY"
PYTHON

Conclusion

scikit-image permet aux développeurs Python de s'attaquer efficacement aux tâches liées aux images. Que vous travailliez sur la vision par ordinateur, l'imagerie médicale, ou des projets artistiques, ce package vous couvre. scikit-image est une bibliothèque polyvalente et puissante pour le traitement d'images en Python, offrant une large gamme de fonctions et algorithmes pour des tâches telles que le filtrage, la segmentation, l'extraction de caractéristiques, et les transformations géométriques. Son intégration transparente avec d'autres bibliothèques scientifiques en fait un choix privilégié pour les chercheurs, développeurs, et ingénieurs travaillant avec l'analyse d'images et les applications de vision par ordinateur.

IronPDF est une bibliothèque Python qui facilite la création, l'édition et la manipulation de documents PDF au sein des applications Python. Elle offre des fonctionnalités telles que la génération de fichiers PDF à partir de diverses sources comme HTML, images ou PDF existants. De plus, IronPDF supporte des tâches comme la fusion ou la division de documents PDF, l'ajout d'annotations, filigranes ou signatures numériques, l'extraction de texte ou images à partir de PDF, et la gestion des propriétés des documents telles que les métadonnées et les paramètres de sécurité. Cette bibliothèque offre un moyen efficace de traiter les tâches liées aux PDF de manière programmée, ce qui la rend adaptée pour les applications nécessitant des fonctions de génération de documents, de création de rapports, ou de gestion de documents.

Ensemble, avec les deux bibliothèques, les utilisateurs peuvent travailler avec des images, les traiter efficacement, et stocker les résultats dans des documents PDF à des fins d'archivage.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite