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 pippython -m pip install -U pipSHELL- Instale o scikit-image via pip:
python -m pip install -U scikit-imagepython -m pip install -U scikit-imageSHELL- 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()
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()
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()
Saída

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()
Saída

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()
Saída

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()
Saída

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

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
Gere documentos PDF usando IronPDF e Scikit-Image.
Pré-requisitos
- Certifique-se de que o Visual Studio Code esteja instalado como editor de código.
- 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
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()
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:
-
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 .
-
Aplicar chave de licença: Define a chave de licença para o IronPDF. Este passo é necessário para utilizar as funcionalidades do IronPDF .
-
Carregando e processando uma imagem: Carrega uma imagem chamada
'image.jpg'usando a funçãoio.imreaddo scikit-image. Em seguida, aplica o desfoque gaussiano à imagem carregada usandofilters.gaussiancom um valor sigma de 1,0 e aplica a detecção de borda de Sobel à imagem carregada usandofilters.sobel. -
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'. -
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. - 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


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"
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.




