Visão de computador: scanner de documentos com OpenCV e Python | Yacine Rouizi | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Visão de computador: scanner de documentos com OpenCV e Python

teacher avatar Yacine Rouizi

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      VISÃO GERAL

      1:08

    • 2.

      Instalação

      2:22

    • 3.

      Carregue a imagem

      1:11

    • 4.

      Processamento de imagem

      1:30

    • 5.

      Use as bordas para encontrar todos os contornos

      1:44

    • 6.

      Selecione apenas as bordas do documento

      3:22

    • 7.

      Aplicar a perspectiva de Warp para obter a vista superior para baixo do documento

      2:46

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

37

Estudantes

--

Projeto

Sobre este curso

Neste curso, você vai criar um scanner de documentos simples usando a biblioteca OpenCV e Python. Isso pode ser útil, por exemplo, para escanear páginas em um livro.

Agora para construir nosso projeto, vamos precisar de:

  • Converta a imagem de entrada em escala de cinza.
  • Encontre as bordas na imagem usando o detector de borda de canhão.
  • Em seguida, podemos usar essas bordas para encontrar os contornos na imagem.
  • E a partir daí vamos selecionar apenas os contornos do documento.
  • E, por fim, podemos aplicar uma perspectiva de urdidura para obter a visão superior do documento.

Conheça seu professor

Teacher Profile Image

Yacine Rouizi

Professor

Hi! My name is Yacine Rouizi. I have a Master's level in physics of materials and components and I am a passionate self-taught programmer. I've been programming since 2019 and I teach on my blog about programming, machine learning, and computer vision.

My goal is to make learning accessible to everyone and simplify complex topics, such as computer vision and deep learning, by following a hands-on approach.

Visualizar o perfil completo

Level: Beginner

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. VISÃO GERAL: Oi. Nesta classe, você criará um scanner de documentos simples usando a biblioteca OpenCV e o Python. Isso pode ser útil, por exemplo, para digitalizar páginas em um livro. Meu nome é Yassin e eu serei seu instrutor neste curso. Eu programo desde 2019. E eu sou o autor do vlog. Não se repita .org, onde tenho mais de 5 mil desenvolvedores por mês para aprender mais sobre Python, aprendizado de máquina e visão computacional. Agora, para criar nossos projetos, precisaremos converter a imagem de entrada em uma escala de cinza e encontrar as bordas da imagem usando o detector de bordas canny. Em seguida, podemos usar essas bordas para encontrar os contornos da imagem. E a partir daí, selecionaremos apenas os contornos do documento. E, finalmente, podemos aplicar o que chamamos de perspectiva de trabalho para obter uma visão de cima para baixo do documento, fique à vontade para ver a descrição do curso e espero ver você lá dentro. 2. Instalação: A primeira coisa que precisamos fazer é instalar os pacotes necessários úteis para o processamento de imagens. Então, vamos instalar o OpenCV e o não pi. Vamos primeiro começar com o OpenCV, abrir uma nova janela do terminal e executar o comando pip, instalar o polígono OpenCV. No meu caso, você pode ver que eu já tenho o Open CV instalado. Requisito, já satisfeito. Mas eu só quero criar um ambiente virtual. Assim, o trio pode ver o que você obtém quando o instalou. Ambiente virtual, ou você pode ficar preso à rede. Agora, vamos instalar o Open CV. CV. Aqui você pode ver que o OpenCV foi instalado com sucesso junto com o CV sem canal aberto. Então, eu não preciso instalar. Aqui. Você pode ver que eu tenho o CV aberto 4.54.5, inversão do OpenCV e a divisão do não pi é 1.22.1. Precisamos instalar outros pacotes. O primeiro é que eu sou um pacote de mutagênicos, e também precisamos da barra lateral, que é necessária para o estilo Ionic. Aqui você pode ver que o PI tem a versão 0.51.4. Saberemos que o romance some soapy é a versão 1.37. 3. Carregue a imagem: Portanto, importaremos o Open CV e poderemos ler nosso CV de imagem a ponto. E também vamos redimensionar nossa imagem. Então, vamos dizer ferramenta de currículo, lote, redimensionar imagem. Aqui diremos largura e altura. No futuro, definiremos nossa largura e altura. Então, digamos 600 para a largura e 800 para a altura. Vamos também definir a cor verde. Então, podemos dizer que verde é igual a 2550. Agora, o ponto da imagem, queremos usar esse cabelo e queremos obter a visão de cima para baixo deste documento aqui. 4. Processamento de imagem: Agora podemos começar a processar nossa imagem. Então, começaremos convertendo-o em escala de cinza. Em seguida, aplicaremos um desfoque gaussiano. Nós podemos escrever, ótimo. I é igual a CV para imagem colorida Série D, CB2, cor BGR para cinza. E aqui vamos ler o desfoque gaussiano CB2. E, finalmente, podemos detectar as bordas usando o detector Canny. Então, veremos V2 dot Carney, nossa imagem. E digamos que 75 para o primeiro limite e 200 para o segundo limite. Agora podemos exibir nossa imagem CB2 dot, tenho certeza, mensagem. E também podemos exibir a imagem. Então vamos, aqui está nossa imagem original e nossa imagem. 5. Use as bordas para encontrar todos os contornos: Agora podemos passar para a próxima etapa, que é encontrar e traçar os contornos. Portanto, podemos usar a função CB2 dot find contornos para encontrar os contornos. Portanto, podemos dizer contornos aos contornos dos pontos CB2. E aqui nós fornecemos o condado ou a imagem. Aqui, para o modo de recuperação, podemos dizer CV de duas listas de três pontos. E para o método de aproximação, podemos dizer símbolo dos produtos Jane. Agora podemos exibir nossa imagem e, em seguida, desenhar os contornos e depois reexibir nossa imagem com os contornos. Então, podemos dizer currículo para anotar, tenho certeza de imagem. E aqui vamos desenhar os contornos. Fornecemos nossa imagem, nossos contornos e o sinal negativo para fazer tudo nos contornos. Então você pode usar a cor verde. E três para a espessura. Vamos ver o que temos até agora. Então essa é a nossa imagem e esses são os contornos, não temos um cavalheiro na imagem. 6. Selecione apenas as bordas do documento: Em seguida, precisamos encontrar o maior contorno da imagem. Então esse contorno aqui, porque esse será o nosso documento. Então, o que podemos fazer é classificar nossos contornos por área, da maior para a menor. Podemos usar a função ordenada, que é uma função embutida do Python. Então, podemos escrever aqui, os contornos são iguais aos ordenados. Então, aqui queremos classificar nossos contornos e especificar a área de nossos contornos usando a função de área de contorno CV 2D. E também queremos classificá-los do maior para o menor. Então, podemos escrever aqui, reverso é igual a verdadeiro. Portanto, nesta lista, teremos os maiores contornos primeiro do que o menor no final da lista. Então, a seguir, o que podemos fazer é percorrer essa lista de contornos. E então veremos parceiros em cada contorno. Então, se encontrarmos um contorno com quatro pontos, podemos supor que encontramos nosso documento para que possamos sair do loop. Então, podemos escrever aqui para contorno. Contornos. Agora, para aproximar o contorno, podemos primeiro calcular seu perímetro usando o CV para a função de comprimento do arco. Assim, podemos escrever que o perímetro é igual a c v2 ponto r. E aqui fornecemos nosso contorno. E quanto mais adiante for o segundo argumento, diremos verdadeiro para indicar que o contorno está fechado. Agora podemos aproximar nosso contorno usando o CV para aprox., função poly D p. Assim, podemos escrever que o fluxo é igual a Cv em aproximadamente Pauly D p. E aqui fornecemos nosso contorno. Em seguida, precisamos especificar a precisão da aproximação. Podemos dizer 0,05 vezes o perímetro do contorno. E o cabeçalho. Podemos dizer verdadeiro para indicar que o contorno está fechado. Agora podemos verificar se o contorno aproximado tem quatro pontos. Então, podemos escrever se o comprimento da nossa aproximação for igual a quatro. Então, o que podemos fazer é armazenar nosso contorno em uma variável. Então, digamos que os contornos do documento estejam de acordo com nossa aproximação. E agora podemos sair do circuito. 7. Aplicar a perspectiva de urdidura para obter a vista superior para baixo do documento: Agora estamos prontos para obter a visão de cima para baixo do nosso documento. Então, para isso, temos a função de transformação de quatro pontos do pacote de mutantes IM. Então, primeiro precisamos importar nossa função. Então, podemos dizer, do ponto de vista da Utils, quatro pontos vezes um. Agora você não precisa se preocupar muito com essa função. O que você precisa saber é que ele pega uma imagem e um contorno como entrada e retorna a visão de cima para baixo da imagem. Então, podemos escrever aqui, distorcido é igual a quatro pontos transformados. E aqui passamos nossa imagem original, mas aqui já temos o genoma da nossa imagem. Então, o que podemos fazer é tirar uma cópia da nossa imagem. Portanto, podemos dizer que o café de imagem é uma chamada para nossa cópia pontilhada da imagem original. E agora podemos tirar a cópia da nossa imagem original. Então, diremos que a imagem copia a cabeça. Temos nossos contornos e os remodelamos quatro por dois. E, finalmente, podemos exibir nossa imagem, CB2 dot, tenho certeza. Vamos dizer sobre a imagem e o distorcido. E também o redimensionaremos para obter o mesmo tamanho da nossa imagem. Então, diremos CV para redimensionar nossa imagem distorcida. E usaremos a largura e a altura da nossa imagem original. Então lá vamos nós. Aqui está nossa perspectiva. Agora, você pode ver que a qualidade não é tão boa. E isso ocorre porque estamos usando uma resolução menor, que é 600 por uma tangente. Agora, se você usar o tamanho original da imagem, obviamente obterá melhores resultados.