Ir para o conteúdo do rodapé
AJUDA DO PYTHON

scikit-image em Python (Como funciona: um guia para desenvolvedores)

Scikit-image é uma coleção de algoritmos desenvolvidos em Python para processamento de imagens. É gratuito e irrestrito, apresentando um código de alta qualidade, revisado por pares, desenvolvido por uma comunidade ativa de voluntários. O projeto Scikit-image teve início no Google em 2009 como parte do programa Google Summer Code, sob a mentoria de Stefan van der Walt e outros colaboradores do Scikit-image. O objetivo era criar uma biblioteca Python para processamento de imagens que fosse fácil de usar, eficiente e extensível para aplicações acadêmicas e industriais. Neste artigo, aprenderemos sobre a biblioteca de imagens Scikit-image do Python e uma biblioteca de geração de PDF da IronSoftware chamada IronPDF .

Começando

Para saber mais sobre o Scikit-image, visite o site oficial. Além disso, o Data Carpentry oferece uma ótima lição sobre processamento de imagens em Python usando o Scikit-image.

Instalação via pip

  • Certifique-se de ter o Python instalado (pelo menos a versão 3.10).
  • Abra o terminal ou a linha de comando.

    • Atualizar pip:
    python -m pip install -U pip
    python -m pip install -U pip
    SHELL
    • Instale o scikit-image via pip:
    python -m pip install -U scikit-image
    python -m pip install -U scikit-image
    SHELL
    • Para acessar os conjuntos de dados de demonstração, utilize:
    python -m pip install -U scikit-image[data]
    python -m pip install -U scikit-image[data]
    SHELL
    • Para pacotes científicos adicionais, incluindo recursos de processamento paralelo:
    python -m pip install -U scikit-image[optional]
    python -m pip install -U scikit-image[optional]
    SHELL

Exemplo básico

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

Filtros

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, frequentemente abreviado como skimage, é uma poderosa biblioteca Python para tarefas de processamento de imagens. É construído sobre arrays NumPy, SciPy e matplotlib, e fornece diversas funções e algoritmos para manipular e analisar imagens. O código skimage.data.coins() é usado para obter acesso a imagens de amostra da biblioteca. skimage.filters fornece acesso a filtros integrados e funções utilitárias.

Principais características do Scikit-image

1. Filtragem de Imagens e Detecção de Bordas

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

Saída

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 1 - Saída de filtragem de imagem e detecção de bordas

2. Extração de características com HOG (Histograma de Gradientes Orientados)

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

Saída

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 2 - Saída da extração de recursos

3. Transformação Geométrica - Redimensionamento e Rotação

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

Saída

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 3 - Saída da transformação geométrica

4. Redução de ruído em imagens com filtro de variação total

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

Saída

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 4 - Saída da remoção de ruído da imagem

Você pode encontrar mais informações sobre processamento de imagens e arrays NumPy na página oficial .

Apresentando o IronPDF

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 5 - IronPDF: a biblioteca PDF for Python

IronPDF é uma biblioteca Python robusta projetada para lidar com a criação, edição e assinatura de documentos PDF usando HTML, CSS, imagens e JavaScript. Prioriza a eficiência de desempenho e opera com uso mínimo de memória. As principais características incluem:

  • Conversão de HTML para PDF: Converta arquivos HTML, strings HTML e URLs em documentos PDF, aproveitando recursos como a renderização de páginas da web usando o renderizador de PDF do Chrome.

  • Suporte multiplataforma: Compatível com Python 3+ em Windows, Mac, Linux e diversas plataformas em nuvem. O IronPDF também está disponível para ambientes .NET, Java, Python e Node.js

  • Edição e assinatura: personalize as propriedades do PDF, aplique medidas de segurança como senhas e permissões e insira assinaturas digitais de forma integrada.

  • Modelos e configurações de página: Crie layouts de PDF com recursos como cabeçalhos, rodapés, números de página, margens ajustáveis, tamanhos de papel personalizados e designs responsivos.

  • Conformidade com os padrões: Adere rigorosamente aos padrões PDF, como PDF/A e PDF/UA, garante a compatibilidade com a codificação de caracteres UTF-8 e gerencia com eficiência recursos como imagens, folhas de estilo CSS e fontes.

Instalação

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

Gere documentos PDF usando IronPDF e Scikit-Image.

Pré-requisitos

  1. Certifique-se de que o Visual Studio Code esteja instalado como editor de código.
  2. A versão 3 do Python está instalada.

Para começar, vamos criar um arquivo Python para adicionar nossos scripts.

Abra o Visual Studio Code e crie um arquivo, scikitDemo.py.

Instale as bibliotecas necessárias:

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

Em seguida, adicione o código Python abaixo para demonstrar o uso dos pacotes Python IronPDF e 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

Explicação do código

Este trecho de código demonstra como usar o scikit-image (skimage) e o IronPDF em conjunto para processar uma imagem e converter os resultados em um documento PDF. Segue uma explicação de cada parte:

  1. Declarações de importação: Importa as funções necessárias do scikit-image para carregamento e filtragem de imagens, e importa a funcionalidade do IronPDF .

  2. Aplicar chave de licença: Define a chave de licença para o IronPDF. Este passo é necessário para utilizar as funcionalidades do IronPDF .

  3. Carregando e processando uma imagem: Carrega uma imagem chamada 'image.jpg' usando a função io.imread do scikit-image. Em seguida, aplica o desfoque gaussiano à imagem carregada usando filters.gaussian com um valor sigma de 1,0 e aplica a detecção de borda de Sobel à imagem carregada usando filters.sobel.

  4. Exibição e salvamento de resultados: io.imshow_collection([image, blurred_image, edges]).savefig('ironPdf-skimage.png'): Salva uma coleção de imagens (originais, desfocadas e bordas) como 'ironPdf-skimage.png'.

  5. Converter imagem para PDF: ImageToPdfConverter.ImageToPdf("ironPdf-skimage.png").SaveAs("ironPdf-skimage.pdf"): Converte a imagem PNG salva em um documento PDF usando a funcionalidade do IronPDF.

  6. Exibição das imagens: io.show(): Exibe as imagens em uma janela gráfica.

Este trecho de código combina as funcionalidades do scikit-image para processamento de imagens e do IronPDF para converter imagens processadas em documentos PDF. Este vídeo demonstra como carregar uma imagem, aplicar desfoque gaussiano e detecção de bordas de Sobel, salvá-la como um arquivo PNG, converter o PNG para PDF usando o IronPDF e exibir as imagens processadas. Essa integração é útil para tarefas em que as imagens precisam ser processadas, analisadas e documentadas em formato PDF, como em pesquisas científicas, relatórios de análise de imagens ou fluxos de trabalho automatizados de geração de documentos.

Saída

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 6 - Entrada de imagens

PDF

scikit-image Python (Como funciona: um guia para desenvolvedores): Figura 7 - Saída em PDF

Licença IronPDF

O IronPDF funciona com uma chave de licença for Python. O IronPDF for Python oferece uma licença de avaliação gratuita para permitir que os usuários experimentem seus diversos recursos antes de comprá-lo.

Insira a chave de licença no início do script antes de usar o pacote 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

Conclusão

O scikit-image permite que desenvolvedores Python lidem com tarefas relacionadas a imagens de forma eficiente. Seja para projetos de visão computacional, imagens médicas ou projetos artísticos, este pacote tem tudo o que você precisa. O scikit-image é uma biblioteca versátil e poderosa para processamento de imagens em Python, oferecendo uma ampla gama de funções e algoritmos para tarefas como filtragem, segmentação, extração de características e transformações geométricas. Sua integração perfeita com outras bibliotecas científicas a torna a escolha preferida de pesquisadores, desenvolvedores e engenheiros que trabalham com análise de imagens e aplicações de visão computacional.

IronPDF é uma biblioteca Python que facilita a criação, edição e manipulação de documentos PDF em aplicações Python. Oferece funcionalidades como a geração de arquivos PDF a partir de diversas fontes, como HTML, imagens ou PDFs já existentes. Além disso, o IronPDF oferece suporte a tarefas como mesclar ou dividir documentos PDF, adicionar anotações, marcas d'água ou assinaturas digitais, extrair texto ou imagens de PDFs e gerenciar propriedades de documentos, como metadados e configurações de segurança. Esta biblioteca oferece uma maneira eficiente de lidar programaticamente com tarefas relacionadas a PDFs, tornando-a adequada para aplicações que exigem funcionalidades de geração de documentos, criação de relatórios ou gerenciamento de documentos.

Em conjunto com ambas as bibliotecas, os usuários podem trabalhar com imagens, processá-las de forma eficiente e armazenar os resultados em documentos PDF para fins de arquivamento.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim