Coder Social home page Coder Social logo

richardson-souza / processamento-de-imagem Goto Github PK

View Code? Open in Web Editor NEW
7.0 3.0 9.0 1.65 MB

Exemplos de processamento de imagem em python (scikit-image)

License: MIT License

Jupyter Notebook 100.00%
python image-processing processamento-de-imagens imagem skimage edge-detection

processamento-de-imagem's Introduction

Processamento de Imagem em Python

O Processamento de imagens (Image Processing) apresentam técnicas para manipular informações representadas na imagem como por exemplo, realçar bordas e remover ruídos.[1]
No campo da Visão Computacional (Computer Vision), técnicas de processamento de imagem são aplicadas para inferir informações de baixo nível em partes da imagem.
Os algoritmos de visão computacional tem como entrada uma ou mais imagens digitais que são pré-processadas por meio de técnicas de processamento de imagem para que informações úteis possam ser extraídas.
Existem inumeras bibliotecas disponíveis para auxiliar no processamento de imagens como o OpenCV.
Para os exemplos apresentados foi usada a biblioteca scikit-image[2] que é uma coleção de algoritmos para processamento de imagens. Está disponível gratuitamente e sem restrições.

Aplicações

Requisitos

$ pip install -U scikit-image

Detecção de borda (Edge Detection)

A detecção de bordas é uma das operações mais usadas no processamento de imagens, e provavelmente há mais algoritmos na literatura para melhorar e detectar bordas do que qualquer outro assunto em particular. A razão para isso é que as arestas formam o contorno de um objeto, no sentido genérico. Objetos são assuntos de interesse em análise de imagens e no campo da visão computacional.[3]

Museu do Amanhã
Foto: Juiana Rosa

Uma borda é a fronteira entre duas regiões de níveis de cinza diferentes. Para a detecção e realce de bordas, é aplicado o filtro por derivada utilizando-se máscaras de convolução, também chamadas de operadores de 2x2 ou de 3x3.[4]
Alguns exemplos destas máscaras que estão presentes no scikit-image são os operadores de Roberts, Prewitt, Sobel e Scharr. Os detectores de bordas (Roberts, Prewitt, Sobel e Scharr) são conhecidos também como filtros por derivadas, pois é o método mais comum de diferenciação utilizado em processamento de imagem.[5]
Existem dois operadores gradiente fundamentais de Primeira Ordem (ou detetores de borda diferenciadores de primeira ordem). Um método envolve a geração de gradientes em duas direções ortogonais na imagem enquanto o outro método utiliza um conjunto de derivadas direcionais.[6]

Importando bibliotecas necessárias:

import numpy as np
import matplotlib.pyplot as plt

from skimage.io import imread
from skimage.filters import roberts, sobel, scharr, prewitt

Usando os operadores:

img = imread("input/camera_01.jpg", as_gray=True) # carregando imagem
op_roberts = roberts(img)
op_sobel = sobel(img)
op_scharr = scharr(img)
op_prewitt = prewitt(img)

Visualizando os resultados:

fig, axes = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True, figsize=(12, 12))

ax = axes.ravel()

ax[0].imshow(op_roberts, cmap=plt.cm.gray)
ax[0].set_title('Operador de Roberts')

ax[1].imshow(op_sobel, cmap=plt.cm.gray)
ax[1].set_title('Operador de Sobel')

ax[2].imshow(op_scharr, cmap=plt.cm.gray)
ax[2].set_title('Operador de Scharr')

ax[3].imshow(op_prewitt, cmap=plt.cm.gray)
ax[3].set_title('Operador de Prewitt')

for a in ax:
    a.axis('off')

plt.tight_layout()
plt.show()

Câmera
Foto: Juiana Rosa

Citação

[1] BARELLI, Felipe. Introdução à Visão Computacional: Uma abordagem prática com Python e OpenCV. Casa do Código, 2018.

[2] Stéfan van der Walt, Johannes L. Schönberger, Juan Nunez-Iglesias, François Boulogne, Joshua D. Warner, Neil Yager, Emmanuelle Gouillart, Tony Yu and the scikit-image contributors. scikit-image: Image processing in Python. PeerJ 2:e453 (2014) http://dx.doi.org/10.7717/peerj.453

[3] PARKER, J.R. Algorithms for Image Processing and Computer Vision. Wiley Publishing, 2011.

[4] MATURAnA, Patrícia. ALGORITMOS DE DETECÇÃO DE BORDAS IMPLEMENTADOS EM FPGA. FACULDADE DE ENGENHARIA DE ILHA SOLTEIRA, 2010.

[5] SILVA, F.J.V., ALVES, C.H.F. APLICAÇÃO DE TÉCNICAS DE PROCESSAMENTO DE IMAGENS DIGITAIS EM IMAGENS GERADAS POR ULTRA-SOM. Universidade Federal do Rio Grande do Norte, 2008.

[6] BRITO, Sérgio. Relatorio Final de Iniciação Científica Sistemas de Processamento Digital de Imagens para Fins Didático/Cientíco - Estudo Seleção e Implementação de Algoritmos de Segmentação. Universidade Federal da Paraíba, 1998.

processamento-de-imagem's People

Contributors

richardson-souza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.