71
UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS UNIVERSITÁRIO DO ARAGUAIA INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA CURSO DE CIÊNCIA DA COMPUTAÇÃO DETECÇÃO AUTOMÁTICA DE ELEMENTOS DE PROPRIEDADES RURAIS EM IMAGEM DE SATÉLITE PARA SUPORTE A SISTEMAS DE CADASTROS RURAIS LEONARDO ROMAS TOMAZELI BARRA DO GARÇAS – MT 2018

UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

0

UNIVERSIDADE FEDERAL DE MATO GROSSO

CAMPUS UNIVERSITÁRIO DO ARAGUAIA

INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA CURSO DE CIÊNCIA DA COMPUTAÇÃO

DETECÇÃO AUTOMÁTICA DE ELEMENTOS DE

PROPRIEDADES RURAIS EM IMAGEM DE SATÉLITE

PARA SUPORTE A SISTEMAS DE CADASTROS RURAIS

LEONARDO ROMAS TOMAZELI

BARRA DO GARÇAS – MT

2018

Page 2: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

1

UNIVERSIDADE FEDERAL DE MATO GROSSO

CAMPUS UNIVERSITÁRIO DO ARAGUAIA

INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA CURSO DE CIÊNCIA DA COMPUTAÇÃO

DETECÇÃO AUTOMÁTICA DE ELEMENTOS DE

PROPRIEDADES RURAIS EM IMAGEM DE SATÉLITE

PARA SUPORTE A SISTEMAS DE CADASTROS RURAIS

LEONARDO ROMAS TOMAZELI

Monografia apresentada ao Instituto de Ciências

Exatas e da Terra, do Campus Universitário do

Araguaia, da Universidade Federal de Mato Grosso,

como requisito parcial para conclusão do Curso de

Graduação em Ciência da Computação.

Orientador: Prof. Dr. Ivairton Monteiro Santos

BARRA DO GARÇAS – MT

2018

Page 3: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

2

UNIVERSIDADE FEDERAL DE MATO GROSSO

CAMPUS UNIVERSITÁRIO DO ARAGUAIA

INSTITUTO DE CIÊNCIAS EXATAS E DA TERRA CURSO DE CIÊNCIA DA COMPUTAÇÃO

DETECÇÃO AUTOMÁTICA DE ELEMENTOS DE

PROPRIEDADES RURAIS EM IMAGEM DE SATÉLITE

PARA SUPORTE A SISTEMAS DE CADASTROS RURAIS

LEONARDO ROMAS TOMAZELI

Aprovada em ___/___/___

______________________________________

Prof. Dr. Ivairton Monteiro Santos

ICET/UFMT

(Orientador)

______________________________________

Prof. Dr. Robson Silva Lopes

ICET/UFMT

(Membro)

______________________________________

Prof. Dr. Linder Cândido da Silva

ICET/UFMT

(Membro)

Page 4: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

3

DEDICATÓRIA

Ao meu Deus, que sem ele nada seria possível.

À Minha família, que me amparou em todos os momentos da mi-

nha vida.

Ao orientador professor Ivairton, que acreditou até quando eu

não acreditava mais.

Aos meus amigos da faculdade, do GF Universitário, do Coral

UFMT e dos colegas formandos que sempre me deram uma força.

Page 5: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

4

RESUMO

Atualmente ganhou força e destaque uma preocupação constante em relação ao meio

ambiente e os impactos que o ser humano causa. No Brasil, um importante fruto de

movimentos ambientalistas foi a consolidação do Código Florestal Brasileiro uma lei

que rege e controla tudo acerca do meio ambiente no país. Este passou por algumas

alterações ao longo de sua história, sendo que a última grande mudança foi a

instauração do Novo Código Florestal Brasileiro de 2012, que dentre as novidades, foi

criado um sistema único de cadastro de propriedades rurais chamado Cadastro

Ambiental Rural (CAR), que também auxilia na fiscalização ambiental. No entanto, os

órgãos fiscalizadores têm dificuldade em conseguir monitorar as ações dos proprietários

ao longo do tempo, especialmente as zonas de proteção. Este trabalho visa desenvolver

uma ferramenta computacional de suporte ao CAR, para verificação automática de

zonas de proteção, por meio de processamento de imagens de satélite, executando

segmentação e detecção automática das áreas de interesse. Foi testado e definido as

melhores disposições de parâmetros dos testes das funções usadas para separação dos

elementos das imagens de propriedades rurais.

PALAVRAS-CHAVE: Segmentação de Imagens, Processamento de Imagens, Cadastro

Ambiental Rural, Código Florestal, Imagem de Satélite

Page 6: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

5

ABSTRACT

In the last century, many questions have been raised about the concern about the

environment and the impacts that the human being causes. Many environmental

movements have emerged to protect and control the ecosystem in which we live. In

Brazil, one of the results of these movements was the consolidation of a code that

governs and controls everything about the environment, denominated Brazilian Forest

Code. This has undergone some changes throughout its history, and the last great change

was the introduction of the New Forest Code of 2012, which among the novelties, a

unique system of land register was created called Rural Environmental Register, which

also assists in environmental monitoring, but far from being able to monitor the actions

of the owners over time on the protection zones. This project aims to develop an image

processing algorithm that segments satellite images and returns these images, with their

separated and tagged elements, to be used in a tool that automatically verifies if the

protection zones are in agreement with the Brazilian Forest Code, for the purpose of

assisting Rural Environmental Register.

KEYWORDS: Image Segmentation, Image Processing, Environmental Register, Forest

Code, Satellite Image

Page 7: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

6

LISTA DE FIGURAS

Figura 1: Fluxo padrão de Processamento e Análise Digital de Imagens ........................ 9

Figura 2: Exemplo de máscara 5x5 com desvio padrão: 1 Fonte:

https://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm ............................................... 12

Figura 3: Diferentes imagens contendo segmentos após o uso do SLIC. Quanto maior a

quantidade de superpixels, menor o tamanho de cada superpixel. Fonte:

https://filebox.ece.vt.edu/~jbhuang/teaching/ece5554-4554/fa16/hw4.html ................. 16

Figura 4: Representação básica de um histograma Fonte:

https://www.citisystems.com.br/histograma/ .................................................................. 16

Figura 5: Imagem obtida pelo SLIC, convencionada como dificuldade Fácil. .............. 27

Figura 6: Imagem obtida pelo SLIC convencionada como dificuldade Média. ............. 27

Figura 7: Imagem obtida pelo SLIC convencionada como dificuldade Difícil. ............. 28

Figura 8: Imagem gerada pelo SLIC, classificada como média, após a união de

segmentos usando histograma com os parâmetros: Folga do Histograma: 0,2 Tamanho

do Histograma: 5 Erro de Colunas:0,0. .......................................................................... 29

Figura 9: Imagem gerada pelo SLIC, classificada como média, após o algoritmo de

união por histograma com os parâmetros: Folga do Histograma: 0,5 Tamanho do

Histograma: 5 Erro de Colunas:0,0. ............................................................................... 30

Figura 10: Imagem gerada pelo SLIC, classificada como média, com o algoritmo de

união por histograma com os parâmetros: Folga do Histograma: 0,9 Tamanho do

Histograma: 5 Erro de Colunas: 0,0. .............................................................................. 30

Figura 11: Imagem obtida pelo SLIC, classificada como média, com o algoritmo de

união por histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do

Histograma:10 Erro de Colunas:0,0. .............................................................................. 31

Figura 12: Imagem obtida pelo SLIC, classificada como média, com o algoritmo de

união por histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do

Histograma: 256 Erro de Colunas: 0,0. .......................................................................... 32

Figura 13: Imagem gerada pelo SLIC, classificada como média, com o algoritmo de

união por histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do

Histograma: 5 Erro de Colunas: 0,1. .............................................................................. 33

Figura 14: Imagem gerada pelo SLIC, classificada como média, com o algoritmo de

união por histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do

Histograma:5 Erro de Colunas:0,2. ................................................................................ 33

Figura 15: Imagem gerada pelo SLIC, classificada como média, após a execução do

algoritmo de união por média com o parâmetro Folga da Media igual a 0,02. .............. 35

Figura 16: Imagem gerada pelo SLIC, classificada como difícil, após a execução do

algoritmo de união por média com o parâmetro Folga da Media igual a 0,02 ............... 35

Figura 17: Imagem gerada pelo SLIC, classificada como média, após execução do

algoritmo de união por média com o parâmetro Folga da Media igual a 0,05. .............. 35

Figura 18: Imagem gerada pelo SLIC, classificada como difícil, após a execução do

algoritmo de união por média com o parâmetro Folga da Media igual a 0,05 ............... 36

Page 8: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

7

Figura 19: Imagem gerada pelo SLIC, classificada como média, após a execução do

algoritmo de união por média com o parâmetro Folga da Media igual a 0,2. ................ 36

Figura 20: Imagem gerada pelo SLIC, classificada como difícil, após a execução do

algoritmo de união por média com o parâmetro Folga da Media igual a 0,2. ................ 37

Figura 21: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0

Folga da Média: 0,2 ........................................................................................................ 39

Figura 22: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 10 Erro de Colunas: 0,0

Folga da Média: 0,2 ........................................................................................................ 39

Figura 23: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,1

Folga da Média: 0,2 ........................................................................................................ 39

Figura 24: Imagem convencionada como dificuldade difícil, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0

Folga da Média: 0,2 ........................................................................................................ 40

Figura 25: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados

pelo SLIC com o algoritmo de união por histogramas com a média com os parâmetros:

Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da

Média: 0,2 ....................................................................................................................... 40

Figura 26: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com os parâmetros: Folga

do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,02 Folga da Média:

0,02 ................................................................................................................................. 41

Figura 27: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 10 Erro de Colunas: 0,0

Folga da Média: 0,02 ...................................................................................................... 41

Figura 28: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados

pelo SLIC com o algoritmo de união por histogramas com a média com os parâmetros:

Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da

Média: 0,02 ..................................................................................................................... 42

Figura 29: Imagem convencionada como dificuldade difícil, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0

Folga da Média: 0,02 ...................................................................................................... 42

Figura 30: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados

pelo SLIC com o algoritmo de união por histogramas com a média com os parâmetros:

Folga do Histograma: 0,8 Tamanho do Histograma: 10 Erro de Colunas: 0,1 Folga da

Média: 0,05 ..................................................................................................................... 43

Figura 31: Imagem convencionada como dificuldade média, junto aos segmentos

Page 9: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

8

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma: 10 Erro de Colunas: 0,1

Folga da Média: 0,05 ...................................................................................................... 44

Figura 32: Imagem convencionada como dificuldade difícil, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma: 10 Erro de Colunas: 0,1

Folga da Média: 0,05 ...................................................................................................... 44

Figura 33: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados

pelo SLIC com o algoritmo de união por histogramas com a média com os parâmetros:

Folga do Histograma: 0,8 Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da

Média: 0,15 ..................................................................................................................... 45

Figura 34: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados

pelo SLIC com o algoritmo de união por histogramas com a média com os parâmetros:

Folga do Histograma: 0,8 Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da

Média: 0,2 ....................................................................................................................... 45

Figura 35: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma:10 Erro de Colunas: 0,1

Folga da Média: 0,05 ...................................................................................................... 46

Figura 36: Imagem convencionada como dificuldade média, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma: 10 Erro de Colunas: 0,1

Folga da Média: 0,1 ........................................................................................................ 46

Figura 37: Imagem convencionada como dificuldade difícil, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0

Folga da Média: 0,02 ...................................................................................................... 47

Figura 38: Imagem convencionada como dificuldade difícil, junto aos segmentos

gerados pelo SLIC com o algoritmo de união por histogramas com a média com os

parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de Colunas: 0,0

Folga da Média: 0,05 ...................................................................................................... 47

Page 10: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

9

LISTA DE TABELAS

Tabela 1: Comparação entre algoritmos de segmentação de imagens FONTE: Autor

Page 11: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

10

LISTA DE ABREVIATURAS E SIGLAS

ADI – Análise Digital de Imagens

APP – Área de Preservação Permanente

CAR – Cadastro Ambiental Rural

DFT – Discrete Fourier Transform

RL – Reserva Legal

FFT – Fast Fourier Transform

PADI - Processamento e Análise Digital de Imagens

PDI – Processamento Digital de Imagens

Pixel – Picture Element

PNMA – Política Nacional do Meio Ambiente

RGB – Red-Green-Blue

SLIC – Simple Linear Iterative Clustering

VHLL – Very High Level Language

Page 12: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

1

SUMÁRIO

1 INTRODUÇÃO ........................................................................................................................................ 2

2 REFERENCIAL TEÓRICO ......................................................................................................................... 4

2.1 CÓDIGO FLORESTAL BRASILEIRO ................................................................................................. 4

2.2 IMAGENS DIGITAIS E FUNDAMENTOS DE PROCESSAMENTO DE IMAGENS ................................ 7

2.2.1 ALGORITMOS DE DETECÇÃO DE BORDA ............................................................................... 10

2.2.2 ALGORITMOS DE SUAVIZAÇÃO ............................................................................................. 11

2.2.3 ALGORITMOS DE SEGMENTAÇÃO DE IMAGENS ................................................................... 13

2.2.4 HISTOGRAMA ........................................................................................................................ 16

2.3 LINGUAGEM DE PROGRAMAÇÃO PYTHON E BIBLIOTECAS DE PROCESSAMENTO DE IMAGENS 17

3 METODOLOGIA ................................................................................................................................... 18

3.1 TRABALHOS CORRELACIONADOS .............................................................................................. 19

3.2 DESENVOLVIMENTO .................................................................................................................. 19

3.2.1 COLETA DE IMAGENS PARA TESTES ...................................................................................... 20

3.2.2 DETECÇÃO DE BORDAS E FILTRAGEM ................................................................................... 20

3.2.3 SEGMENTAÇÃO DE IMAGENS ............................................................................................... 21

3.2.4 DESENVOLVIMENTO DO CÓDIGO ......................................................................................... 23

4 RESULTADOS E DISCUSSÕES................................................................................................................ 26

4.1 IMAGENS GERADAS PELO SLIC .................................................................................................. 26

4.2 UNIÃO DE SEGMENTOS A PARTIR DO HISTOGRAMA ................................................................ 28

4.2.1 PARÂMETRO DE FOLGA DO HISTOGRAMA ........................................................................... 28

4.2.2 PARÂMETRO DE TAMANHO DO HISTOGRAMA ..................................................................... 31

4.2.3 PARÂMETRO DE ERRO DE COLUNAS ..................................................................................... 32

4.2.4 CONSIDERAÇÕES A RESPEITO DO ALGORITMO DE UNIÃO POR HISTOGRAMA .................... 33

4.3 UNIÃO DE SEGMENTOS A PARTIR DA MÉDIA DA ESCALA DE CINZA ......................................... 34

4.3.1 CONSIDERAÇÕES QUANTO AO ALGORITMO DE UNIÃO POR MÉDIA .................................... 37

4.4 UNIÃO DE SEGMENTOS A PARTIR DO HISTOGRAMA E MÉDIA DA ESCALA DE CINZA ............... 37

4.4.1 FOLGA DA MÉDIA .................................................................................................................. 38

4.5 COMPLEXIDADE DO ALGORITMO E TEMPO DE PROCESSAMENTO .......................................... 48

5 CONCLUSÕES ...................................................................................................................................... 49

5.1 TRABALHOS FUTUROS ............................................................................................................... 49

6 BIBLIOGRAFIA ..................................................................................................................................... 51

7 ANEXO A ............................................................................................................................................. 53

Page 13: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

2

1 INTRODUÇÃO

O incessante crescimento e desenvolvimento da humanidade impõem ao mundo

constantes transformações, decorrentes da dinâmica dos indivíduos na busca de

modificar o meio2 de acordo com as suas necessidades e extrair da natureza o máximo

que ela lhes pode ofertar. Historicamente o homem pouco se importou com a

preservação da natureza, mundo afora as populações extinguiram suas faunas,

reduziram suas floras e contaminaram suas fontes hídricas em função do desejo de

acumular riquezas.

Essa situação deve-se em boa parte à revolução industrial, onde os países mais

industrializados impuseram uma divisão internacional do trabalho, dando aos menos

desenvolvidos e dependentes economicamente o dever de supri-los de matérias-primas

para alimentar suas indústrias. Assim como a maioria dos países subdesenvolvidos, o

Brasil figura nessa divisão como um fornecedor de matéria-prima, função que exerce

desde os tempos coloniais.

Com o aumento populacional o país passou a diversificar e intensificar sua

produção e por consequência a exploração dos recursos naturais, de onde resultou num

certo enriquecimento e desenvolvimento, possibilitando a nação alcançar o estágio

atual. Contudo o desenvolvimento fundado na exploração cada vez mais intensa e

mecanizada deu lugar à degradação, poluição e a desertificação em muitos lugares do

país, fenômenos replicados em diversas regiões do planeta, cuja severidade fez com que

autoridades mundiais tomassem a iniciativa de combatê-los.

Na Constituição Federal brasileira há várias iniciativas governamentais visando

dar efetividade aos dispositivos constitucionais concernentes à proteção do meio

ambiente. Na seara legislativa ocorreu uma verdadeira reformulação, seja com a

aprovação de novas leis tutelando bens naturais específicos, seja atualizando normas já

existentes, como por exemplo, o antigo Código Florestal de 1965 que deu lugar a Lei N.

12.651, de 2012, instituindo o novo Código Florestal.

O novo Código Florestal inovou no desenvolvimento de um sistema único para

cadastramento de propriedades rurais, denominado Cadastro Ambiental Rural (CAR),

impondo aos proprietários a regularização no quesito ambiental.

Tal imposição visa atender o que é expresso no caput do Art. 225 da Constituição,

que diz “Todos tem direito ao meio ambiente ecologicamente equilibrado, bem de uso

comum do povo e essencial à sadia qualidade de vida, impondo-se, ao poder público e

Page 14: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

3

à coletividade o dever de defendê-lo e preservá-lo para o presente e futuras gerações”.

Porém, somente a inscrição no CAR não é suficiente para garantir que os

proprietários não venham degradar o meio ambiente após a regularização. É necessária

uma fiscalização contínua, e é nesta fiscalização e controle que há maior carência de

recursos para atender com máxima eficácia e eficiência.

Levando em consideração esse contexto, neste trabalho foram levantadas algumas

indagações: é possível a construção de uma ferramenta capaz de auxiliar os

instrumentos de fiscalização já existentes, de maneira automatizada, utilizando imagens

aéreas (especialmente de satélite)? Como essa ferramenta irá definir qual elemento está

contido na imagem, ou seja, como diferenciar mata de rio, ou mata de pasto, sendo que

há vários padrões distintos de cores de cada elemento dependendo da imagem?

Nesse sentido o presente trabalho tem como objetivo desenvolver e definir um

meio de separar regiões em uma imagem aérea de modo que cada elemento da imagem

(mata, pastagem, rios, lagos) tenha seu próprio segmento (único e indivisível) para

possibilitar a análise e identificação automática de cada elemento.

A partir do desenvolvimento de uma proposta de sistema e com os testes

realizados ficou evidente que é um desafio conseguir separar com qualidade os

diferentes elementos de uma imagem aérea, e que para uma completa segmentação

ainda é necessário a supervisão de um especialista. Ainda assim, a automação alcançada

representou um avanço no processo manual feito atualmente, o que pode representar

uma otimização considerável e um ganho relevante (sobretudo de tempo) no processo

de fiscalização.

Este trabalho abordará o embasamento teórico referente aos dispositivos

presentes no Código Florestal Brasileiro, ferramentas estudadas e utilizadas, os

algoritmos de processamento de imagens estudados e testados, as funções e os métodos

de calibragem dos parâmetros das funções utilizadas e os resultados obtidos.

Page 15: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

4

2 REFERENCIAL TEÓRICO

Este capítulo irá tratar dos principais conceitos e elementos utilizados no

desenvolvimento deste trabalho.

2.1 CÓDIGO FLORESTAL BRASILEIRO

A história da legislação ambiental no Brasil é mais antiga do que a criação do

primeiro código florestal. Segundo (Carvalho, et al., 2018) os antecedentes da legislação

ambiental derivam dos povos nativos, que associavam a derrubada de florestas a algum

tipo de sentimento religioso profundo.

Ainda segundo (Carvalho, et al., 2018), após as chegadas dos Portugueses,

trouxeram consigo de Portugal suas legislações, inclusive as com enfoque ambiental.

Porém a realidade que Portugal vivia era de escassez de recursos florestais, enquanto no

Brasil esses recursos eram abundantes, portanto, as leis não funcionavam da mesma

forma no Brasil, mas por outro lado, eram importantes para salvaguardar as “madeiras

de lei”, como por exemplo, o pau-brasil.

Em 1934, mediante Decreto Nº 23.793/1934, foi criado o primeiro Código

Florestal Brasileiro, que dentre outros pontos, destacou-se o estabelecimento de

conceitos como Florestas Protetoras (matas que têm algumas das seguintes finalidades:

conservar regime de água, evitar erosões, fixar dunas, etc).

Segundo (Praes, 2012), a partir da década de 60, com a eclosão dos movimentos

ambientais e a preocupação com o possível esgotamento de recursos para as futuras

gerações fez-se necessária a revisão do Código Florestal de 1934.

Em 15 de setembro de 1965, foi editada a Lei Federal Nº 4.771, revogando o

Decreto Federal Nº 23.793/1934. De acordo com (Spavorek, et al., 2011), o Código

Florestal de 1965 aplica-se a propriedades privadas. Ou seja, o proprietário rural deve

reservar parte da sua terra, destinando-a a manutenção da vegetação natural, sendo esta

realizada, principalmente, por meio de dois estatutos: Áreas de Preservação Permanente

(APP’s) e Reserva Legal (RL). Sendo que, os proprietários que não estiverem

cumprindo as determinações previstas para as APP’s e RL, segundo o código (Lei N.

4.771), terão que recompor as áreas que foram desmatadas.

Page 16: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

5

De acordo com a definição proposta por (SEBRAE, 2017)

Áreas de Preservação Permanente são áreas protegidas, cobertas

ou não por vegetação nativa, com a função ambiental de

preservar as margens dos rios, nascentes e lagoas, a paisagem, a

estabilidade geológica e a biodiversidade, proteger o solo e

assegurar o bem-estar das populações humanas (SEBRAE,

2017).

Como exemplo, podemos citar as faixas marginais de qualquer curso de água

natural; as áreas no entorno dos lagos e lagoas naturais, reservatórios e nascentes; as

restingas; os manguezais e áreas com altitude superior a 1.800 m.

Já a Reserva Legal consiste (SEBRAE, 2017):

É a área localizada no interior de uma propriedade ou posse

rural que deve ter a vegetação nativa preservada com função de

assegurar o uso econômico sustentável dos recursos naturais do

imóvel rural, auxiliar a conservação e a reabilitação dos

processos ecológicos e promover a conservação da

biodiversidade, bem como o abrigo e a proteção da fauna

silvestre e da flora nativas (SEBRAE, 2017).

Na RL só é permitido uso restrito, que deve ser autorizado pelo órgão ambiental.

O tamanho da RL varia em função da região e do bioma. Se localizado na Amazônia

Legal, deve observar limites:

• Preservação de 80% do imóvel situado em área de floresta;

• Preservação de 35% do imóvel situado em área de cerrado;

• Preservação de 20% do imóvel situado em área de campos gerais.

Se localizado nas demais regiões do país:

• Preservação de 20% do imóvel.

O Código Florestal de 1965 seguiu vigente por mais de 40 anos e em 25 de maio

de 2011, foi aprovado um novo pedido de revisão do código. Proposta esta, muito

criticada por ambientalistas e pela comunidade científica com o argumento de ser uma

proposta voltada exclusivamente aos interesses dos ruralistas.

Essa proposta foi analisada e aprovada no dia 25 de abril de 2012. Das principais

edições houve a manutenção da porcentagem de reserva legal de acordo com o bioma,

houve redução nos limites protegidos das APP’s (Áreas de Preservação Permanente),

Page 17: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

6

como por exemplo, nas faixas de leito de rio (Considerando um rio de 10 metros de

largura, o limite anterior era de 30 m de mata protegida, agora são 15 m).

Dentre as novidades neste novo Código Florestal, é destacável a implementação

do CAR, que é um registro nacional obrigatório online das propriedades rurais, com o

intuito do governo conseguir gerir a utilização e ocupação do solo, bem como analisar

os fatores ambientais.

Segundo (SEBRAE, 2017):

O Cadastro Ambiental Rural (CAR) é o registro público

eletrônico das informações ambientais dos imóveis rurais com

objetivo de viabilizar controle, monitoramento ambiental,

facilitação dos processos de licenciamento, gestão integrada dos

territórios e acompanhamento dos ativos ambientais das

propriedades. (SEBRAE, 2017)

O cadastro é realizado por intermédio de um sistema eletrônico que identifica

imagens aéreas georreferenciadas dos imóveis rurais e delimita as zonas de proteção,

como as APP’s e as reservas florestais.

Segundo (SEBRAE, 2017) os principais benefícios aos proprietários em utilizar

o CAR são:

• Garantir a preservação da vegetação nativa existente na propriedade rural e o

reaproveitamento de nutrientes no solo;

• Propiciar que a fauna e a flora tenham condições de equilibrar a região onde

estiver localizado;

• Possibilitar uma espécie de “radiografia” das áreas rurais, com o

levantamento de múltiplos indicadores ambientais e de outras informações

para benefício do próprio produtor rural e para a governança socioambiental

dos imóveis de uma determinada região;

• Facilitar acesso ao crédito agrícola e a outros programas do governo que

garantam o pagamento por desempenho, compensação pelas medidas de

conservação, incentivos para a comercialização agrícola e para a inovação,

etc.;

• Possibilitar a comercialização de Cotas de Reserva Ambiental e uma

remuneração ao produtor que optou por deixar uma maior área para

Page 18: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

7

conservação de vegetação nativa daquela exigida na legislação (tanto para as

APPS, como para as RLs).

A inscrição pode ser feita diretamente pelo site do CAR ou nos sites dos órgãos

estaduais ambientais.

2.2 IMAGENS DIGITAIS E FUNDAMENTOS DE

PROCESSAMENTO DE IMAGENS

Uma imagem pode ser definida como uma função f(x,y), onde f representa a

intensidade (brilho) ou o nível de cinza em um ponto, denotado pelas coordenadas

espaciais x e y (Gonzalez, et al., 2007).

Em seu modelo computacional, a imagem deve passar por uma conversão para um

formato discreto denominada de digitalização, que envolve duas etapas, a amostragem e

a quantização. A amostragem é o número de pixels em x e y da imagem que gera uma

matriz bidimensional M x N. A quantização consiste em escolher o nível de cinza de

cada pixel da imagem representado por um valor inteiro L em uma imagem

monocromática. Normalmente esse valor é uma potência de 2, onde L é o número de

níveis de cinza e p é a profundidade da imagem. A associação desse valor ao pixel

respeita a escolha do intervalo [Lmin, Lmax] denominado de escala de cinza. (Bueno,

2016)

O Processamento Digital de Imagens (PDI) é um conjunto de formas de

processamento de dados em que tanto a entrada quanto a saída envolvem imagens

digitais. As técnicas ou formas de processamento de imagens são baseadas

principalmente em abstrações na forma em que o olho humano processa uma imagem.

PDI é uma área em constante desenvolvimento, pois ele serve de base para várias

áreas que estão em intenso desenvolvimento nos últimos tempos, como redes neurais,

compressão de imagens, reconhecimento de imagens médicas, espaciais, marinhas,

reconhecimento de padrões, entre outras.

Os elementos e conceitos essenciais quando se trata de imagens digitais são:

• Pixel: ou Picture Element, é o menor ponto de uma imagem digital, utilizado como

unidade básica de medida.

Page 19: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

8

• Escala de Cinza: é uma representação numérica da intensidade de um pixel, que

pode assumir valores entre 0 de 255. Quanto mais próximo de 0, mais o pixel

tenderá à cor preta e quanto mais próximo de 255, mais tenderá à cor branca.

• RGB (Red-Green-Blue): em uma imagem colorida digital, cada pixel é composto

por um sistema aditivo de 3 cores (Vermelho, Verde e Azul), sendo que cada um

desses espectros de cores são capazes de assumir valores entre 0 e 255,

representando tonalidades diferentes, variando do mais escuro (próximo a 0) ao

mais claro (próximo de 255). Combinando os 3 pontos, é possível definir cerca de

16,7 milhões de cores diferentes.

• Resolução: define o nível de detalhe que uma imagem digital possui. Quanto maior

a quantidade de pixels em uma imagem, maior sua resolução e maior o nível de

detalhe. A resolução geralmente é medida como uma contagem de números de

pixels na largura e na altura da imagem, por exemplo: 600 x 400 (600 pixels de

largura por 400 pixels de altura).

Segundo (Augusto, 2012), a área de processamento de imagens pode ser

entendida como o conjunto de duas técnicas: Processamento Digital de Imagens (PDI),

que consiste no preparo da imagem para posteriores análises, em que são realizadas

operações matemáticas que alteram os valores dos pixels; e Análise Digital de Imagens

(ADI), que compreende a análise quantitativa do processo a partir da qual as regiões,

partículas e objetos identificados na imagem são medidos. A junção das duas técnicas é

denominada Processamento e Análise Digital de Imagens (PADI).

A Figura 1 apresenta um fluxograma que exemplifica o passo-a-passo de um

típico PADI.

Page 20: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

9

Figura 1: Fluxo padrão de Processamento e Análise Digital de Imagens

O primeiro procedimento é a formação e aquisição das imagens e logo após isso,

utiliza-se um pré-processamento (se necessário) para melhorar a imagem para as

próximas etapas, como conversões para escala de cinza ou eliminação de ruído.

Após isso vem a segmentação das imagens, para separar os objetos de interesse.

Muitas vezes somente a segmentação de imagens não é o suficiente para separar

adequadamente os objetos de interesse, portanto, geralmente se utiliza uma etapa de pós

processamento para correção de falhas.

Indo para a fase onde se trabalha com os dados, o procedimento seguinte é a

extração de atributos para ter dados que possam, de alguma forma, discriminar os

objetos que foram segmentados.

O último procedimento do fluxograma é a classificação dos atributos extraídos e,

a partir da classificação, reconhecer padrões a fim de transformar esses dados em

informações a serem trabalhadas.

Segundo (Gomes, 2001) apud (Augusto, 2012):

As setas ao lado do fluxograma indicam os níveis com que se

trabalha em cada etapa. No pré-processamento e na

segmentação, as operações são feitas nos pixels das imagens,

resultando em imagens com objetos ou regiões de pixels

contíguos de valores iguais. As medidas para a geração de dados

são feitas na extração de atributos e estas medidas são utilizadas

Page 21: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

10

no fim do processo, na etapa de reconhecimento de padrões e

classificação, de forma a obter dados mais complexos. Do pré-

processamento ao pós-processamento a análise é considerada

qualitativa e a partir da extração de atributos, quantitativa.

(Gomes, 2001) apud (Augusto, 2012)

Nas Subseções seguintes são apresentados e discutidos alguns tipos de

algoritmos de processamento de imagens, utilizados neste trabalho.

2.2.1 ALGORITMOS DE DETECÇÃO DE BORDA

A detecção de borda é uma técnica de processamento de imagens que consiste

em identificar e determinar pontos em uma imagem onde há mudanças repentinas de

intensidade luminosa, pois essas mudanças podem indicar que há características únicas

no objeto presente na imagem. Portanto, a área de detecção de bordas é muito utilizada

em extração de características de uma imagem, que por sua vez são usadas em

procedimentos como análise de imagens e reconhecimento de padrões.

Os principais algoritmos de detecção de borda são: Canny, Prewitt, Roberts e

Sobel (Walt, et al., 2014). A título de exemplo, será explanado o algoritmo Canny.

O algoritmo Canny foi desenvolvido por John F. Carrey em 1986 em sua Tese de

doutorado e apresentado no artigo “A Computacional Approach to Edge Detection”

(Canny, 1986). O filtro de Canny é um filtro de convolução que utiliza da primeira

derivada. Ele suaviza o ruído e localiza as bordas, combinando um operador diferencial

com um filtro Gaussiano.

Este algoritmo foi baseado em uma teoria sobre o detector de bordas ótimo,

idealizado pelo próprio Carrey em sua tese, em que um detector de bordas ótimo deveria

respeitar os seguintes parâmetros:

Boa Detecção - O algoritmo deve ser capaz de identificar todas as bordas

possíveis na imagem.

Boa Localização - As bordas encontradas devem estar o mais próximo

possível das bordas da imagem original.

Resposta Mínima - Cada borda da imagem deve ser marcada apenas

uma vez. O ruído da imagem não deve criar falsas bordas.

Para satisfazer tais condições Canny utilizou um cálculo de variações, visando en-

contrar uma função que aperfeiçoasse os valores desejados. A função ideal para o detec-

Page 22: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

11

tor de Canny é descrito pela soma de quatro termos de exponenciais, que pode ser apro-

ximada pela primeira derivada de uma gaussiana.

O algoritmo Canny geralmente traz bons resultados ao separar e suavizar (elimi-

nar ruídos) em problemas em que se busca ressaltar algum objeto ou elemento da ima-

gem em relação ao plano de fundo.

2.2.2 ALGORITMOS DE SUAVIZAÇÃO

Os filtros de suavização, segundo (Gonzalez, et al., 2007), são aqueles que utili-

zam um algoritmo com uma função para realizar o procedimento de suavização, e são

utilizados para borramentos e redução de ruídos. O borramento é aplicado em tarefas de

pré-processamento, como a remoção de pequenos detalhes da imagem antes da extração

de objetos e conexão de pequenas descontinuidades em linhas ou curvas.

Ruídos são quaisquer tipos de informações indesejáveis nas imagens. Eles podem

ser causados por vários fatores, como a variação de brilho ou problemas na transmissão.

Assim existe a necessidade de se tratar as imagens para então conseguir extrair as in-

formações mais relevantes, de acordo com a finalidade. A redução de ruídos pode ser

obtida pelo borramento com um filtro linear e também pela filtragem não-linear.

Existem dois tipos de filtragem de imagem: Filtragem no Domínio do Espaço e

Filtragem no Domínio da Frequência. A Filtragem no Domínio do Espaço consiste em

manipular os valores de uma vizinhança para modificar a imagem diretamente. Os tipos

de filtros no Domínio do Espaço podem se dividir em: Filtros Lineares, que fazem o

processo de realce, suavização e minimizam ruídos sem alterar o nível médio de escala

de cinza; e Filtros Não-Lineares, que fazem os mesmos processos sem se preocupar em

manter o nível de cinza.

A Filtragem no Domínio da Frequência realiza uma transformação para mudar a

representação dos dados para o domínio da frequência, utilizando por exemplo o FFT

(Fast Fourier Transform) ou o DFT (Discrete Fourier Transform), este sempre usado

para sinais digitalizados. Nesse tipo de abordagem, os filtros mais conhecidos são o

Filtro de Passa Baixa, que consiste em diminuir altas frequências (como bordas e ruí-

dos) causando um efeito de borramento na imagem; e o Filtro de Passa Alta que faz jus-

tamente o contrário, aumentando a frequência em locais de baixa frequência sem afetar

as de alta frequência, fazendo com que essas zonas sejam mais aguçadas.

Page 23: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

12

Alguns dos principais algoritmos de suavização são: Filtro Gaussiano, Filtro da

Mediana e Filtro de Sobel (Gonzalez, et al., 2007). Aqui será destacado o Filtro Gaussi-

ano, pois ele é utilizado no algoritmo de segmentação empregado neste trabalho.

O Filtro Gaussiano é baseado na curva de Gauss, muito utilizada na área

estatística. De acordo com (Alves, 2007), o Filtro Gaussiano também é muito utilizado

para suavização de imagens, com a diferença de não preservar as arestas uma vez que

não considera a diferença das intensidades. Ele possui dois parâmetros, a dimensão da

janela e um valor para o desvio padrão sigma. Seu comportamento é similar ao filtro

passa-baixa, isto é, suavização de imagens. O quanto à imagem será suavizada está

relacionado ao desvio padrão sigma, isto é, quanto maior o sigma, mais a imagem é

suavizada. Quanto maior o sigma, maior o número de pixels cujo valor é diferente de

zero, o que leva os pixels vizinhos a terem maior influência em cada ponto, realizando

uma suavização maior na imagem. Neste filtro, assim como em outros, a suavização da

imagem é realizada através da substituição de cada pixel pela média ponderada dos

pixels vizinhos. Porém, o filtro Gaussiano funciona de forma que o peso dado a um

vizinho decresce monotonamente com a distância do pixel central. O custo

computacional requerido por um filtro Gaussiano é relativo ao tamanho da máscara. Um

exemplo de uma máscara utilizada no filtro gaussiano está presente na Figura 2.

Figura 2: Exemplo de máscara 5x5 com desvio padrão: 1 Fonte:

https://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm

Page 24: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

13

2.2.3 ALGORITMOS DE SEGMENTAÇÃO DE IMAGENS

Baseado em (Chipana, et al., 2012), segmentação de imagens é uma importante

etapa no que tange ao processamento de imagens. O objetivo dessa etapa é subdividir a

imagem em várias partes visando facilitar a análise posterior da imagem.

O conceito de segmentação de imagens nada mais é do que um processo de

identificação de pixels com características similares utilizando etiquetas. Os pixels

vizinhos com a mesma etiqueta representam um objeto ou região e, para fazer a análise

de imagens, basta rotular pixel ou grupo de pixels de mesma classe.

Existem vários métodos de segmentação de imagens, com diferentes enfoques,

podemos citar:

• Algoritmos Baseados em Limiar: Os algoritmos baseados em Threshold, como

por exemplo o método de OTSU (Otsu, 1976), são algoritmos que utilizam um

limiar, isto é, definem um ponto na escala de cinza em que os valores acima e

abaixo desse limiar tornam-se objetos distintos. Muito usado em problemas onde

o foco é separar um objeto do plano de fundo.

• Algoritmos Baseados em Detecção de Bordas: Esses algoritmos utilizam

alguma morfologia matemática (gradiente, por exemplo) para detecção de bordas

(como o Canny, Roberts e Prewitt). Também utilizada para separar elementos de

um plano de fundo. Um bom exemplo é no reconhecimento de placas de

automóveis.

• Algoritmos Baseados em Regiões: Essa abordagem assume que os pixels

vizinhos de um certo conjunto de pixels denominado região têm um valor com um

certo grau de similaridade. Nessa abordagem têm-se como os principais

algoritmos supervisionados (algoritmos que necessitam de seeds pelo usuário para

trazer um resultado satisfatório): Split and Merge e Region Growing (Gonzalez, et

al., 2007). E tem como algoritmos não supervisionados algoritmos J-SEG

(algoritmos baseados em cor ou textura) como Felzenswalb (Walt, et al., 2014).

• Algoritmos Baseados em Clusters: Nessa abordagem a ideia principal é o uso de

centros de agrupamento para representar cada grupo e realizar a classificação com

base na similaridade. O algoritmo SLIC é um exemplo que utiliza essa

Page 25: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

14

abordagem. Como o SLIC foi o principal algoritmo utilizado no projeto, ele será

explicado em mais detalhes na sequência.

• Algoritmos Híbridos: São algoritmos que combinam duas ou mais abordagens.

Temos por exemplo o algoritmo Watershed, que se baseia em algoritmos por

regiões e por detecção de borda.

2.2.3.1 ALGORITMO SLIC

O Simple Linear Iterative Clustering (SLIC) é um algoritmo de segmentação de

imagens por agrupamento (clustering) baseado em Superpixels, que é uma técnica que

consiste em agrupar pixels de uma imagem e classificá-los em regiões que tentam

preservar as características comuns da imagem, como bordas e cores (Alexandre, 2016).

Este algoritmo utiliza um plano 5D, com os parâmetros sendo os valores do espaço de

cores CIELab (que é uma forma de representar as cores, semelhante ao RGB, porém

utiliza um espaço 5D e de acordo com (Pedro, 2017) o CIE (Comissão Internacional de

Iluminação) desenvolveu o modelo colorimétrico Lab (também conhecido como

CIELab), no qual uma cor é identificada por três valores: L, para a luminância, expressa

em percentagem (de 0 para o preto a 100 para o branco); a e b, para as duas gamas de

cor que vão, respectivamente, do verde ao vermelho e do azul ao amarelo com valores

que vão de -120 a +120. O CIELab pode ser entendido melhor em (Oliveira, 2006).

De acordo com (Achanta, et al., 2011) o SLIC é uma adaptação do algoritmo K-

means, que pode ser entendido em (Alsabti, et al., 1998), porém há duas grandes

distinções:

O número de cálculos de distância na otimização é drasticamente

reduzido, limitando o espaço de pesquisa a uma região proporcional ao

tamanho do superelipse. Isso reduz a complexidade de ser linear no

número de pixels, independente do número de superpixels.

Uma medida de distância ponderada combina cor e espaço, enquanto

simultaneamente fornece controle sobre o tamanho e compactação dos

superpixels.

No SLIC, baseado nas definições presentes em (Achanta, et al., 2011), o pa-

râmetro principal do algoritmo é um número N de quantidade desejada de regiões, de

Page 26: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

15

dimensões aproximadamente iguais. O procedimento de agrupamento começa com uma

etapa de inicialização em que n centros de clusters iniciais são amostrados em uma gra-

de regular espaçada S pixels separados. Para produzir superpixels aproximadamente

iguais, o intervalo da grade é √ . Os centros são movidos para localizações de

sementes correspondentes à posição de gradiente mais baixa em uma vizinhança 3 × 3.

Isso é feito para evitar a centralização do superpixel em uma borda, e reduzir a chance

de semear um superpixel com um pixel com ruído.

Em seguida cada pixel i é associado ao centro do cluster mais próximo cuja

região de pesquisa se sobrepõe à localização. Esta técnica tem como objetivo acelerar o

algoritmo porque limitando o tamanho da região de pesquisa reduz significativamente o

número de cálculos de distância, e resulta em uma vantagem de velocidade significativa

sobre os agrupamentos onde cada pixel deve ser comparado com todos os centros do

cluster. Isso só é possível através da introdução de uma medida de distância D, que de-

termina o cluster mais próximo para cada pixel. Se uma região esperada for de tamanho

M x N, a busca por pixels semelhantes será feita em uma área de tamanho 2M x 2N.

Depois que cada pixel tiver sido associado ao cluster mais próximo do centro,

uma etapa de atualização ajusta os centros dos clusters para ser a média de todos os

pixels pertencentes ao cluster.

A Figura 3 apresenta 3 imagens processadas pelo SLIC, cada imagem com o

resultado da aplicação do algoritmo considerando diferentes configurações em relação à

quantidade de superpíxels.

Page 27: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

16

Figura 3: Diferentes imagens contendo segmentos após o uso do SLIC. Quanto maior a quantidade de

superpixels, menor o tamanho de cada segmento. Fonte:

https://filebox.ece.vt.edu/~jbhuang/teaching/ece5554-4554/fa16/hw4.html

2.2.4 HISTOGRAMA

Outro conceito importante a respeito de processamento de imagens digitais,

utilizado neste trabalho, é o histograma. Um histograma é uma representação gráfica da

função de probabilidades ou da função de densidade de um conjunto de dados

independentes e foi introduzido pela primeira vez por Karl Pearson (Pearson, 1895). A

representação mais comum do histograma é um gráfico de barras verticais, como no

exemplo da Figura 4.

Figura 4: Representação básica de um histograma Fonte:

https://www.citisystems.com.br/histograma/

Segundo (Augusto, 2012), o histograma de uma imagem digital com k níveis de

cinza é uma função discreta dada pela eq. (1):

𝑝(𝑘) 𝑛𝑘

𝑛 (1)

Onde:

k = nível de cinza, podendo variar entre 0 (preto) e 255 (branco);

nk = número de pixels na imagem com o nível de cinza k;

Page 28: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

17

n = número total de pixels na imagem;

p(k) = estimativa da ocorrência do nível de cinza k. O somatório de p(k), é sempre

igual a 1.

O gráfico do histograma é plotado com a intensidade dos pixels para 256 tons no

eixo horizontal e, no eixo vertical, é plotado a probabilidade de ocorrência dos tons de

cinza na imagem (Gonzalez, et al., 2007).

Por fornecer uma descrição global da aparência de uma imagem, o histograma é

uma das características mais importantes a ser avaliada.

2.3 LINGUAGEM DE PROGRAMAÇÃO PYTHON E

BIBLIOTECAS DE PROCESSAMENTO DE IMAGENS

Python é uma linguagem de programação de altíssimo nível (VHLL – Very High

Level Language) criado pelo holandês Guido Van Rossum. É uma linguagem de código

aberto, disponível em varias plataformas, com sintaxe clara, orientada a objetos e

procedural, altamente modular (possui vários módulos já desenvolvidos), de tipagem

dinâmica e forte. É altamente popular por permitir a fácil leitura do código e exigir

poucas linhas de código se comparado ao mesmo programa em outras linguagens.

Python possui várias bibliotecas de auxílio ao desenvolvimento na área de

processamento de imagens e serão citadas aquelas utilizadas no desenvolvimento deste

trabalho.

• Numpy é uma biblioteca do Python que otimiza o trabalho com arranjos, vetores

e matrizes multidimensionais, possuindo inúmeros módulos de funções

matemáticas para trabalhar com essas estruturas de dados.

• Matplotlib é uma biblioteca com diversas funcionalidades para plotagem de

gráficos e imagens.

• Scikit-image é uma biblioteca que tem um conjunto de ferramentas/algoritmos

para trabalhar com processamento de imagens, como filtros, transformações e

algoritmos de segmentação de imagens.

Page 29: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

18

3 METODOLOGIA

A proposta inicial deste trabalho foi desenvolver uma ferramenta que ao receber

uma imagem aérea de uma propriedade rural, retorna o valor em porcentagem de cada

elemento (tipo de área, como por exemplo, mata, pasto, área de plantio, rios) presente

na imagem, com o intuito de ser utilizada como ferramenta de auxílio na fiscalização

ambiental, tendo como base os parâmetros do Código Florestal Brasileiro.

Entretanto, ao realizar os primeiros estudos, percebeu-se que o problema em

questão tinha alta complexidade e envolvia um desafio na área de processamento de

imagens. Visto que não se encontrou nenhuma ferramenta adequada para solucionar o

problema de processamento de imagens, resolveu-se então que este trabalho seria

dedicado à proposição de uma ferramenta para esse problema.

Portanto, o objetivo desse projeto caracterizou-se por desenvolver e definir um

meio de demarcar regiões de modo que cada elemento da imagem (mata, pastagem, rios,

lagos) tenha seu próprio segmento (único e indivisível).

O processo metodológico desse trabalho é descrito da seguinte forma:

Primeiramente, foi realizado um levantamento bibliográfico para estudar artigos que

tivessem o mesmo teor do trabalho proposto ou outros trabalhos relevantes correlatos.

Após o levantamento, percebeu-se que um bom ponto de partida para a execução do

trabalho seria estudar algum Sistema de Informação Geográfica (SIG) capaz de

trabalhar com processamento de imagens. Segundo o estudo, o SIG Spring se mostrou,

em teoria, ter essas competências. Ao longo do estudo prático do Spring, constatou que

era necessário o desenvolvimento de algumas funções do nível de processamento de

imagens, e com isso, o foco do trabalho passou à implementação de tais ferramentas.

Para o desenvolvimento, foram estudados os recursos disponíveis em Python,

como bibliotecas de processamento de imagens. Em relação à própria implementação,

foi abordado da seguinte maneira: Primeiramente trabalharíamos a imagem de entrada

utilizando alguma ferramenta de detecção de bordas, por que de início entendíamos que

detecção de bordas era um pré-processamento essencial para qualquer segmentação

(mas não é verdade, detecção de bordas é somente uma das abordagens para se realizar

segmentação), logo após foram estudados filtros para suavização de imagens,

Page 30: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

19

conseguinte foram estudados algoritmos de segmentação de imagens, e por último, visto

que a saída resultante era uma imagem com muitos segmentos pequenos, implementou-

se algoritmos de união de segmentos semelhantes.

3.1 TRABALHOS CORRELACIONADOS

O início do projeto pautou-se pela busca dos referenciais teóricos que dessem

suporte e embasamento científico à pesquisa, então procedeu-se com a leitura das leis

que amparam as propriedades rurais, bem como as que regulamentam o cadastramento e

fiscalização ambiental. Nesta etapa foram estudados: o novo Código Florestal, Lei Nº

12.651/2012 e o Decreto N° 7.830/2012 que criou e regulamentou o Cadastro

Ambiental Rural, além da Lei Nº 9.638/81 que criou a Política Nacional do Meio

Ambiente-PNMA. Este estudo teve como foco conhecer a realidade, as ferramentas

utilizadas na fiscalização e a necessidade de aprimoramento que justificaria o presente

estudo. Houve também uma busca por referências em projetos de mesmo teor. Destes,

cabem destacar:

O Geocar (Alves, 2017) é um software comercial disponível na área para extração

de imagens espaciais para o cadastramento do CAR, ele possui um repositório grande

de imagens, de todo o Brasil, para ser utilizado na regularização das propriedades

referentes a reserva legal. Portanto Geocar é simplesmente um banco de imagens para

suporte ao cadastramento no CAR.

O trabalho de conclusão de curso de (Silva, 2016) descreve detalhadamente o

passo-a-passo de como uma propriedade georreferenciada é cadastrada no Sicar

(Sistema Nacional de Cadastro Ambiental Rural), ou seja, é um trabalho que descreve o

processo metodológico de execução do cadastro. Este trabalho seria uma etapa neste

processo de cadastro, ou uma etapa num processo de fiscalização.

3.2 DESENVOLVIMENTO

Com os estudos realizados passou-se ao desenvolvimento do sistema. De modo

geral, o sistema consiste no carregamento da imagem digital aérea, pré-processamento

da imagem e segmentação. As Subseções seguintes descrevem os procedimentos

realizados neste contexto.

Page 31: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

20

3.2.1 COLETA DE IMAGENS PARA TESTES

Foram extraídas 36 imagens de satélite a partir da ferramenta Google Earth

(Google), com escala de 1/25.000 em uma região próxima (a sudeste) à cidade de Barra

do Garças e dessas, foram selecionadas 9 imagens categorizadas em 3 níveis de

dificuldades classificadas de maneira subjetiva (fácil, médio, difícil), de acordo com a

quantidade e diversidade de elementos na foto, sem o intermédio de um especialista na

área. A resolução das imagens testadas foi em média no tamanho 1366x900 pixels. As

imagens foram convertidas para o padrão escala de cinza, utilizando a função

“rgb2gray()” disponível na biblioteca SciKit (Walt, et al., 2014).

3.2.2 DETECÇÃO DE BORDAS E FILTRAGEM

A partir das imagens já coletadas e selecionadas, verificou-se que o primeiro

passo para a solução do problema de separação de elementos na imagem é detectar as

bordas de cada elemento, de modo a separar e contornar (desenhar) mudanças de níveis

de cinza na matriz da imagem, de acordo com os parâmetros definidos na função.

Foram estudados alguns algoritmos clássicos para a solução de detecção de

borda e dentre as verificações feitas, descartou-se logo de início algoritmos

supervisionados, pois necessita de entrada de seeds (valores iniciais de posições da

imagem) fornecidas pelo usuário para processar, sendo que para o problema que

demanda um resultado automatizado essa ação é indesejada.

No passo seguinte, foi testado o algoritmo Canny, que por ser automático e por

ter uma boa sensibilidade às alterações de escala de cinza acreditou-se que o Canny

combinado com um algoritmo de filtragem e de pós-processamento traria um resultado

satisfatório. Também foi testado o algoritmo Watershed com seeds definidos

automaticamente, dispersos ao longo da imagem (randomicamente). Na etapa inicial do

trabalho usou-se os algoritmos Canny e Watershed, que mais tarde foram descartados

em razão da melhor qualidade de segmentação do algoritmo SLIC.

Foram também analisados alguns dos principais algoritmos de filtragem (Scharr,

Gauss, La Place, Roberts, Sobel), buscando ressaltar elementos importantes e ocultar

bordas desnecessárias. Estes algoritmos foram testados junto aos algoritmos de detecção

de bordas, porém, como foi verificado que os algoritmos de segmentação de imagens

estudados, já aplicam algoritmos de filtragem durante seu processamento (no caso do

algoritmo de segmentação escolhido na fase posterior, o algoritmo de suavização

Page 32: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

21

utilizado foi o filtro gaussiano), a implementação do algoritmo de filtragem junto ao

algoritmo de detecção foi desnecessária e portanto, não houve uma análise aprofundada

de tais algoritmos supracitados.

3.2.3 SEGMENTAÇÃO DE IMAGENS

Esta fase é o ponto chave para a solução do problema, que é definir qual algoritmo

de segmentação de imagens e quais parâmetros se adequam melhor ao contexto de

aplicação. Durante esta fase, foram estudados e testados quatro algoritmos de

segmentação (Felzenswalb, SLIC, Watershed e Quickshift) além de outros

(Segmentação por Threshold e Randon Walker) descartados antes da fase de testes por

terem características não convenientes ao problema (como por exemplo, ser feito para

separações entre objeto e plano de fundo, ou por serem supervisionados).

Dentre os quatro algoritmos de segmentação selecionados (Felzenswalb, SLIC,

Watershed e QuickShift), buscou-se verificar e selecionar aquele algoritmo que, com

parâmetros ajustados, retorne como resultado uma separação total de elementos (sem

junções indevidas) independente da dificuldade da imagem.

Os algoritmos Felzenswalb e Quickshift trazem bons resultados quando os

parâmetros estão devidamente configurados para o tipo de imagem, porém não

conseguem trazer bons resultados quando se trata de imagens genéricas, isto é, imagens

com características diversas, com a presença de diferentes tipos de elementos e formas.

O Watershed teve piores resultados em comparação com o algoritmo SLIC por que tem

menos parâmetros e os parâmetros não tiveram tanta sensibilidade quanto o SLIC.

O algoritmo SLIC foi escolhido, por que sabendo que no SLIC cada segmento

possui a mesma taxa de compressão e, portanto, tamanhos muito similares, quanto

maior a quantidade de segmentos gerados pelo SLIC, mais sensíveis serão a mudanças

de contraste, independente da quantidade de elementos da imagem. Essa característica

facilita a detecção de elementos, de diversos tipos e tamanhos, desde que um pós-

processamento faça a união dos segmentos (elementos) semelhantes. Além disso, há

outras vantagens e características para utilizar o algoritmo SLIC neste trabalho. A

Tabela 1 apresenta um comparativo entre os algoritmos de segmentação testados no

projeto.

Tabela 1: Comparação entre algoritmos de segmentação de imagens FONTE: Autor

Page 33: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

22

Felzenswalb QuickShift SLIC Watershed

Utiliza imagens coloridas como entrada X X X

Possuem Filtro Gaussiano para

Suavização

X X X

Retorna vários segmento igualmente

distribuídos de tamanhos similares

X X

Faz a busca para um dado segmento em

uma região vizinha (não na imagem

toda

X

Tempo de processamento alto X

Calibração dos parâmetros mais

flexível, permitindo processar, com

certo grau de qualidade, diferentes tipos

de imagens.

X

3.2.3.1 UNIÃO DE SEGMENTOS

O algoritmo SLIC retorna uma imagem com um conjunto fragmentado de

segmentos. É inviável para esta pesquisa obter múltiplas separações de um mesmo

elemento, portanto houve a necessidade de unir segmentos de um mesmo elemento.

Para isso, foram desenvolvidos e testados dois algoritmos: Um que compara a

média de escala de cinza dos pixels de cada segmento e outro que compara vetores que

representam histogramas sendo que os histogramas somente serão considerados

semelhantes se os valores (de cada posição) forem semelhantes, considerando que há

margem de erro em relação a comparação dos valores e margem de erro em relação ao

total de colunas (valores) iguais do vetor de histograma. No caso do histograma, a

contabilidade dos tons de cinza foi normalizada em função do número de pixels da

imagem.

Além disso, foi observado também se a junção entre o algoritmo que compara as

médias e o que compara histogramas poderia retornar um resultado mais satisfatório do

que separados, pois o algoritmo que compara histogramas se mostrou útil como pré-

processamento dos segmentos e a média se mostrou eficiente em realizar o

processamento final.

Page 34: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

23

3.2.4 DESENVOLVIMENTO DO CÓDIGO

Descartada a utilização do SIG Spring, optou-se pelo desenvolvimento do sistema

na linguagem de programação Python, pois essa linguagem de programação tem como

principais características ser uma linguagem de alto nível, possuir diversas bibliotecas

para processamento de imagens e pode ser implementada tanto aplicando o conceito de

orientação à objetos, quanto procedural.

Das bibliotecas de processamento de imagens disponíveis no Python foram

estudadas as bibliotecas: PIL, OpenCV e Scikit-image, sendo que foi adotada a

biblioteca Scikit-image. Também foram utilizadas as bibliotecas Time para contagem do

tempo de processamento de cada teste, Numpy para operações numéricas e matemáticas

e Matplotlib para plotagem de imagens e gráficos.

A IDE utilizada na implementação foi o Geany 1.27 (www.geany.org).

O código foi implementado da seguinte forma:

Obtém-se a imagem de entrada a ser trabalhada, cria outra variável para receber a

imagem transformada em nível de cinza (pois em certos pontos do código também usa a

imagem colorida), chama a função que calcula e retorna o resultado do SLIC de acordo

com os parâmetros ajustados. Se for desejado utilizar o algoritmo de união por

histogramas, chama a função “criaHistogramas” (Algoritmo 1) que cria n vetores que

representam os histogramas, sendo n o número de segmento na imagem, e após isso,

nesta mesma função é chamada a função “ComparaHistogramas” (Algoritmo 2), função

essa que busca fazer comparações entre todos os n-histogramas, de modo que ao

encontrar histogramas semelhantes (chamando a função “comp2hist”) faz a união de

tais segmentos em um só. Essa função retorna o segmento unificado.

Algoritmo 1 – Algoritmo que gera n histogramas, rearranja em um tamanho T do histograma e chama a

função comparaHistograma.

criaHistogramas(Matriz_segmento):

Para i percorrendo na quantidade de segmentos faça:

Para j em cada posição da imagem faça:

Se i igual segmento do slic[i][j]:

Histograma[valor_escala_de_cinza[i][j]] ←

Histograma[valor_escala_de_cinza[i][j]] + 1

//rearranja o vetor de histogramas de acordo com o tamanho do

histograma definido como parametro

ConverteHistograma(Matriz_segmento, intervalo_de_entrada)

//verifica se os histogramas são similares. Se sim, unem os segmentos

pertencentes a cada histograma

ComparaHistograma(Matriz_segmento)

Page 35: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

24

Algoritmo 2 – Algoritmo que verifica se existe histogramas similares e, se existe, mescla os segmentos

pertencentes aos histogramas

ComparaHistograma(Matriz_segmento, valor_desprezivel, erro_das_colunas){

Para cada histograma1 faça:

Para cada histograma2 faça:

Para cada posição i do histograma faça:

Se |histograma1[i] menos histograma2[i]| <= taxa de

erro permitida e se |histograma1[i] menos histograma2[i]|

> valorDesprezivel:

Contador ← Contador + 1

Se tamanho do histograma igual Contador +

erro_de_colunas:

Resultado ← UneSegmentos

(segmento1,segmento2)

retorna Resultado

Se a intenção for realizar a união baseado na média é chamada a função “Media”

que retorna um vetor com a média do nível de cinza de cada segmento, após isso é

chamada a função “ComparaMedia” (Algoritmo 3) que compara as médias de cada

posição do vetor e unem as posições semelhantes (atualizando o identificador do

segmento), retornando assim um conjunto de segmentos auxiliar.

Algoritmo 3 – Algoritmo que compara as medias dos Superpixels(segmentos) e retorna os conjuntos de

segmentos unidos

ComparaMedia(Matriz_segmento):

Resultado ← segmento[][]

Para cada segmento1 faça:

Para cada segmento2 faça:

//taxa de erro permitida é o valor da folga máxima para os dois

segmentos serem considerados iguais

Se |segmento1 menos segmento2| <= taxa de erro permitida:

//retorna os segmentos similares unidos

Resultado ← UneSegmentos(segmento1,segmento2)

retorna Resultado

Se a intenção for realizar a união utilizando ambos os algoritmos baseados em

histograma e média, simplesmente deverá chama-los na função principal tendo como a

entrada de conjunto de segmentos do segundo algoritmo a saída do primeiro algoritmo.

O pseudo código da função principal do sistema pode ser visto no Algoritmo 4.

Algoritmo 4: Função principal que descreve o fluxo básico do algoritmo

Principal( ){

img ← CarregaImg()

imgray ← TransformaCinza(img)

segmentos_slic ← GeraSlic(imgray)

vetorMedia ← CalculaMédiadoTomdeCinza(segmentos_slic)

vetorHistograma ← Histograma(segmentos_slic)

imgMedia ← ComparaMedia(vetorMedia)

imgHistograma ← ComparaHistograma(vetorHistograma)

Page 36: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

25

imgMediaAndHistograma ← UneSegmentos (imgMedia, imgHistograma)

imprime imagem com os segmentos resultantes

Page 37: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

26

4 RESULTADOS E DISCUSSÕES

Neste capítulo vamos apresentar os resultados dos testes executados. Vale ressaltar

que a análise da qualidade da segmentação das imagens é subjetiva. Foi adotado como

referência o contexto do CAR, de modo que o objetivo seria segmentar áreas de mata,

pasto, plantação, rio e suas margens.

Para a realização dos testes foi utilizado um Notebook DELL INSPIRON 3421

x64, com 4 Gb de memória física, 1 Tb de HD e processador Intel64 Family 6 Model 58

Stepping 9 GenuineIntel ~1801Mhz Dell Inc. A13.

O Sistema operacional utilizado foi o Ubuntu 16.04.5, em um ambiente

virtualizado em Windows 10, utilizando o virtualizador Oracle VirtualBox versão

5.2.18.

4.1 IMAGENS GERADAS PELO SLIC

Das nove imagens testadas, foram escolhidas três, cada um com um nível de

dificuldade (fácil, médio, difícil) para serem utilizadas nos testes finais de união de

segmentos. O SLIC foi executado com os parâmetros (900,10,5), selecionados a partir

de testes, sendo que 900 é a quantidade de segmentos, 10 é o índice de compressão e o 5

é o valor sigma, que é um parâmetro para o tratamento de imagens (gaussiano).

A Figura 51 apresenta a imagem categorizada como Fácil, após a execução do

SLIC. É importante observar que não ocorrem segmentos que misturam diferentes

elementos objetos do CAR (por exemplo, não ocorre de certo segmento ter uma parte de

mata e pasto).

1 As descontinuidades aparentes dos segmentos nas imagens apresentadas nesse capítulo são falhas de

impressão.

Page 38: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

27

Figura 5: Imagem obtida pelo SLIC, convencionada como dificuldade Fácil.

A Figura 6 traz a imagem categorizada como Média.

Figura 6: Imagem obtida pelo SLIC convencionada como dificuldade Média.

A Figura 7 apresenta o resultado do algoritmo SLIC para a imagem categorizada como

Difícil. Nesta imagem nota-se diferentes formas e tons de diversos elementos, inclusive

com a presença de um trecho do rio Garças. Ainda assim, percebe-se poucas falhas,

sutis, em relação à segmentação de elementos distintos em um mesmo segmento.

Page 39: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

28

Figura 7: Imagem obtida pelo SLIC convencionada como dificuldade Difícil.

4.2 UNIÃO DE SEGMENTOS A PARTIR DO HISTOGRAMA

Nos testes utilizando somente histograma como algoritmo de união de segmentos

foram avaliados parâmetros como “folga do histograma”, “tamanho do histograma” e

tolerância de colunas diferentes na comparação entre histogramas, que aqui foi

denominada de “erro de coluna”. Os parâmetros e os melhores valores apontados são

discutidos a seguir.

4.2.1 PARÂMETRO DE FOLGA DO HISTOGRAMA

Quando comparados dois histogramas sabe-se que dificilmente os valores serão

idênticos, dessa forma, para viabilizar a comparação foi considerada uma taxa de folga,

ou seja, uma porcentagem de tolerância de diferença em relação ao maior valor daqueles

comparados. Essa taxa de tolerância do erro usada na comparação entre cada coluna do

histograma foi chamada de “folga do histograma”. Para verificar as consequências no

resultado com relação à variação da Folga do Histograma foi testado todo o intervalo

(entre 0 e 1), aqui será destacado os valores de 0,2, 0,5 e 0,9, que bem representam os

testes executados. Os outros parâmetros serão mantidos em valores que não

comprometem a análise de um parâmetro específico, também para as etapas seguintes.

Os parâmetros serão definidos manualmente, restringindo o intervalo de acordo com os

testes empiricamente analisados. Os demais parâmetros apresentados na legenda serão

discutidos posteriormente.

Com o parâmetro Folga do Histograma igual a 0,2 houve muitos segmentos,

até os visualmente semelhantes, que não se uniram, ou seja, os histogramas desses

Page 40: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

29

segmentos se diferem mais do que a folga permitem. Houve poucas uniões, mas boa

parte das uniões se concentrou nas regiões de pasto e, empiricamente, podemos dizer

que não houve uniões indevidas (uniões de segmentos que representam objetos ou

regiões distintas). A Figura 8 ilustra um exemplo de execução com Folga do Histograma

igual a 0,2.

Figura 8: Imagem gerada pelo SLIC, classificada como média, após a união de segmentos usando

histograma com os parâmetros: Folga do Histograma: 0,2 Tamanho do Histograma: 5 Erro de

Colunas:0,0.

Com a Folga do Histograma igual a 0,5, representada pela Figura 9, também

houve muitos segmentos que não se uniram, porém ocorram mais uniões que no

contexto anterior e essas novas uniões foram mais distribuídas, incluindo a mata

fechada que tinha poucas uniões. Houve poucas uniões, mas boa parte das uniões se

concentrou na região de pasto. Neste contexto ocorreram algumas poucas uniões entre

elementos distintos (uniões incorretas)

Page 41: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

30

Figura 9: Imagem gerada pelo SLIC, classificada como média, após o algoritmo de união por

histograma com os parâmetros: Folga do Histograma: 0,5 Tamanho do Histograma: 5 Erro de

Colunas:0,0.

Usando a Folga do Histograma igual a 0,9, representada pela Figura 10, uniram-

se muitos segmentos, restando algumas áreas isoladas, mesmo dentro de um mesmo

elemento (como observado na região da mata, na parte direita e superior da imagem).

Houve um aumento da ocorrência de uniões indevidas, devido ao valor da folga ser

bastante alto.

Figura 10: Imagem gerada pelo SLIC, classificada como média, com o algoritmo de união por

histograma com os parâmetros: Folga do Histograma: 0,9 Tamanho do Histograma: 5 Erro de Colunas:

0,0.

Page 42: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

31

4.2.2 PARÂMETRO DE TAMANHO DO HISTOGRAMA

Um histograma clássico deve contabilizar todos os tons de cinza da imagem, o

que corresponde a um vetor de 256 posições (maior nível de detalhe possível). No

entanto, é possível contabilizar intervalos de tons de cinza diminuindo o tamanho do

vetor do histograma, porém, generaliza e perde precisão na representação da imagem.

As Figuras 11 e 12 demonstram a consequência da variação no “Tamanho do

Histograma”, variável que corresponde ao tamanho do vetor do Histograma,

representando respectivamente um histograma com tamanho de 10 (intervalos de

aproximadamente 25 valores) e de 256.

Como esperado, o histograma com tamanho de 10 proporcionou mais uniões de

segmentos (em razão da generalização). Já no histograma com tamanho de 256, a

imagem obteve poucas junções, pois quanto maior o tamanho do histograma, mais

precisa é sua representação, ou seja, maior a dificuldade de se ter histogramas

semelhantes por que os valores dispostos ao longo do histograma podem se diferenciar

bastante, mesmo que tenha uma semelhança aparente em relação ao resultado visual.

Portanto, segmentos semelhantes, com menor tamanho de histograma, tendem a

ter histogramas “parecidos”.

Figura 11: Imagem obtida pelo SLIC, classificada como média, com o algoritmo de união por

histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma:10 Erro de

Colunas:0,0.

Page 43: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

32

Figura 12: Imagem obtida pelo SLIC, classificada como média, com o algoritmo de união por

histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma: 256 Erro de

Colunas: 0,0.

4.2.3 PARÂMETRO DE ERRO DE COLUNAS

Em razão da dificuldade em se classificar histogramas como “semelhantes”, outro

parâmetro adotado é em relação à folga permitida quanto ao número de colunas

diferentes na comparação entre histogramas. Ou seja, além de considerar uma folga em

relação aos valores de cada coluna, ainda se considerou uma tolerância em relação ao

número de colunas que podem ser diferentes. Essa folga foi aqui denominada de “Erro

de Colunas”.

As imagens apresentadas pelas Figuras 13 e 14 mostram os resultados com a

variação deste parâmetro. O Erro de Colunas com taxa igual a 0,1 (Figura 12)

proporciona uma união de vários segmentos, porém ainda há muitos segmentos que

poderiam ser unidos. No entanto, com Erro de Colunas com taxa igual a 0,2 ocorrem

uniões de segmentos em excesso, com várias uniões inadequadas (união de elementos

distintos). Portanto para esse caso, 0,2 é um valor alto para ser escolhido, visto que

ocorrem uniões de regiões diferentes.

Page 44: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

33

Figura 13: Imagem gerada pelo SLIC, classificada como média, com o algoritmo de união por

histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma: 5 Erro de Colunas:

0,1.

Figura 14: Imagem gerada pelo SLIC, classificada como média, com o algoritmo de união por

histogramas com os parâmetros: Folga do Histograma: 0,8 Tamanho do Histograma:5 Erro de

Colunas:0,2.

4.2.4 CONSIDERAÇÕES A RESPEITO DO ALGORITMO DE UNIÃO POR

HISTOGRAMA

Na implementação deste algoritmo, foi definida uma variável denominada

ValorDesprezível que define um valor baixo o suficiente para ser tratado como

irrelevante. Definimos como padrão o valor 0,01. Essa estratégia foi adotada em razão

Page 45: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

34

de alguns contextos que comparavam valores muito baixos (próximos à zero) e por

conta da taxa ser aplicada no valor, acabava por não considerar a equivalência entre os

valores.

De acordo com os experimentos, o algoritmo de união por histograma utilizado de

forma avulsa, não gera bons resultados, visto que necessita que parâmetros altos (como

por exemplo, folga de histograma igual a 0,9) para unir vários segmentos, só que dessa

maneira aumenta muito as chances de ocorrer uniões indevidas.

4.3 UNIÃO DE SEGMENTOS A PARTIR DA MÉDIA DA ESCALA

DE CINZA

Na união pela média da escala de cinza, foi calculado o valor médio da escala de

cinza a partir de todos os pixels de cada segmento. Então, foram considerados

segmentos equivalentes aqueles com valores iguais ou com uma taxa de tolerância de

erro, aqui denominada de “folga da média”.

Os experimentos variaram o valor da folga da média com taxa entre 0 e 0,5. Aqui

serão apresentados os resultados com valores iguais a 0,02; 0,05 e 0,2, que bem

representam os resultados obtidos.

O parâmetro Folga da Média definido em 0,02 é um valor baixo, pois conforme

demonstram as imagens das Figuras 15 e 16 foram unidos poucos segmentos, deixando

muitos ruídos na imagem e dificultando a correta segmentação das regiões da imagem.

Page 46: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

35

Figura 15: Imagem gerada pelo SLIC, classificada como média, após a execução do algoritmo de união

por média com o parâmetro Folga da Media igual a 0,02.

Figura 16: Imagem gerada pelo SLIC, classificada como difícil, após a execução do algoritmo de união

por média com o parâmetro Folga da Media igual a 0,02

O parâmetro Folga da Média definido em 0,05 é o valor encontrado mais próximo

do ideal, pois conforme as Figuras 17 e 18 obtiveram uniões de segmento com melhor

característica entre os testes, mesmo que com alguns ruídos, mas facilitam um pós-

processamento ou uma possível marcação (manual) das regiões de interesse definidas

pelo usuário.

Figura 17: Imagem gerada pelo SLIC, classificada como média, após execução do algoritmo de união

por média com o parâmetro Folga da Media igual a 0,05.

Page 47: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

36

Figura 18: Imagem gerada pelo SLIC, classificada como difícil, após a execução do algoritmo de união

por média com o parâmetro Folga da Media igual a 0,05

O parâmetro Folga da Média definido em 0,2 é um valor bastante alto, pois

conforme as Figuras 19 e 20 só não foram unidos alguns segmentos que estão dispersos

pela imagem, enquanto várias regiões em que seria necessária uma separação foram

completamente unificadas.

Figura 19: Imagem gerada pelo SLIC, classificada como média, após a execução do algoritmo de união

por média com o parâmetro Folga da Media igual a 0,2.

Page 48: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

37

Figura 20: Imagem gerada pelo SLIC, classificada como difícil, após a execução do algoritmo de união

por média com o parâmetro Folga da Media igual a 0,2.

4.3.1 CONSIDERAÇÕES QUANTO AO ALGORITMO DE UNIÃO POR

MÉDIA

Quando comparadas as estratégias de união de segmentos por meio do histograma

e da média da escala de cinza, o algoritmo que une a partir da média se apresentou

melhor.

No entanto, após os testes, percebeu-se que poderiam ser utilizados os dois

algoritmos em conjunto, e possivelmente gerar bons resultados. Dessa forma, optou-se

por aplicar inicialmente o algoritmo de união pelo histograma e, a partir da saída dada,

ser aplicado o algoritmo de união pela média dos tons da escala de cinza, pois havia

uma hipótese de que o algoritmo de união pelo histograma seria útil como parte de pré-

processamento.

4.4 UNIÃO DE SEGMENTOS A PARTIR DO HISTOGRAMA E

MÉDIA DA ESCALA DE CINZA

Foi realizada uma bateria de testes, calibrando a Folga da Media, a Folga do

Histograma, o Tamanho do Histograma e o Erro de Colunas a fim de encontrar as

melhores combinações. Os testes consistiram das combinações dos valores para Folga

da Média (0,02; 0,05; 0,1; 0,15; 0,2), para o Tamanho do Histograma (5; 10), para o

Erro de Colunas do Histograma (0,0; 0,1; 0,2) e para a Folga do Histograma (0,5; 0,8).

Page 49: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

38

Essas entradas de testes também foram escolhidas mediante testes (empiricamente),

para verificar bons e ruins parâmetros para ser discutido no trabalho.

Para não ter excesso de imagens de testes para justificar certos pontos, foi

reduzida a quantidade de imagens e muitas das possíveis combinações não foram

expostas ao longo deste capítulo, destacando aqueles resultados mais representativos.

4.4.1 FOLGA DA MÉDIA

4.4.1.1 FOLGA DA MÉDIA IGUAL A 0,2

Assim como na abordagem de Média (Seção 4.3), com folga da média igual a 0,2,

como observado na Figura 21, há muita união de segmentos, ao ponto de fazer uniões

de duas regiões distintas. Mesmo modificando os outros parâmetros, como Erro da

Coluna ou tamanho do Histograma, como nas Figuras 22 e 23 ou utilizando imagem

estabelecida como difícil, como na Figura 24 tendem a serem ruins por uniões de

elementos indevidos.

Somente em imagens classificadas como fácil, que a Folga da Média igual a 0,2

gera um bom resultado, como se pode observar na Figura 25, pois em imagens com

poucos elementos, a tendência é que folgas maiores sejam mais próximas do ideal, pois

folgas maiores são mais generalistas e deixam menos segmentos similares sem união.

Acima desse valor de folga, comprovado em outros testes, não apresentados neste

texto, os resultados tendem a juntar mais segmentos até chegar ao ponto de unir todos

os segmentos.

Page 50: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

39

Figura 21: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,2

Figura 22: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 10 Erro de Colunas: 0,0 Folga da Média: 0,2

Figura 23: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,1 Folga da Média: 0,2

Page 51: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

40

Figura 24: Imagem convencionada como dificuldade difícil, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,2

Figura 25: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados pelo SLIC com o

algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,2

4.4.1.2 FOLGA DA MÉDIA IGUAL A 0,02

Também, como na abordagem de Média (Seção 4.3), com folga da média igual a

0,02, como observado nas Figuras 26 e 27, há pouca união de segmentos, mesmo com

os outros parâmetros modificados ou utilizando imagem classificada como fácil como

na Figura 28.

Somente em imagens estipuladas como difícil, que a folga igual a 0,2 pode gerar

um bom resultado, pois como se pode observar na Figura 29, em imagens com vários

elementos distintos são necessário muitos segmentos para que cada elemento seja

Page 52: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

41

etiquetado adequadamente, pois folgas menores são mais especialistas e geralmente

deixam muitos segmentos como resultado.

Figura 26: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com os parâmetros: Folga do Histograma: 0,5 Tamanho do

Histograma: 5 Erro de Colunas: 0,02 Folga da Média: 0,02

Figura 27: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 10 Erro de Colunas: 0,0 Folga da Média: 0,02

Page 53: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

42

Figura 28: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados pelo SLIC com o

algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,02

Figura 29: Imagem convencionada como dificuldade difícil, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,02

4.4.1.3 MELHORES COMBINAÇÕES VISANDO A ENTRADA DE IMAGENS

GENÉRICAS

Tratando em linhas gerais, sem a definição de padrões de dificuldade, Folga da

Média 0,05 e com Folga do Histograma 0,8, Folga das Colunas 0,1 e Tamanho do

Histograma 10 é, segundo a bateria de testes realizados, a melhor faixa buscando uma

aplicação genérica, independente da dificuldade das imagens, pois é a faixa média onde

Page 54: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

43

não há muitos segmentos semelhantes que não se unem e nem há muitas uniões

indevidas.

Na imagem fácil da Figura 30, podemos observar que na região de mata,

praticamente inteira, foi agrupada em um único segmento, enquanto na região de pasto,

por ter diferentes texturas e tonalidades, gerou mais segmentos específicos para as

diferenças nessa região.

Figura 30: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados pelo

SLIC com o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma:

0,8 Tamanho do Histograma: 10 Erro de Colunas: 0,1 Folga da Média: 0,05

Na imagem da Figura 31, ocorreu a união de toda faixa de mata mais escura,

separando da mata mais clara. Na região de pasto, houve bastante “ruído” proveniente

também das mudanças de tonalidade, intensidade luminosa e textura.

Page 55: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

44

Figura 31: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,8

Tamanho do Histograma: 10 Erro de Colunas: 0,1 Folga da Média: 0,05

Na imagem da Figura 32, excetuando por alguns pequenos segmentos que não

foram unidos, subdividiu bem de acordo com as variações presentes em todos os

elementos, inclusive no rio e nas regiões de mata.

Figura 32: Imagem convencionada como dificuldade difícil, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,8

Tamanho do Histograma: 10 Erro de Colunas: 0,1 Folga da Média: 0,05

4.4.1.4 MELHORES COMBINAÇÕES VISANDO A ENTRADA DE IMAGENS

COM NÍVEIS DE DIFICULDADE

Se considerar os padrões de dificuldade, a Folga da Média ideal é no intervalo de

0,02 a 0,10, sendo que quanto maior a dificuldade menor deve ser a folga da média.

Na imagem fácil, de acordo com as Figuras 33 e 34, com Folga da Média entre

0,15 e 0,2 e com Folga do Histograma 0,8, Folga das Colunas 0.0 e Tamanho do

Histograma 5, foi constatado que nos resultados ocorreu a união de toda a mata e no

pasto, mesmo com as diferenças de cor, intensidade luminosa e textura, subdivide em

poucos segmentos, deixando pouco “ruído” na imagem. Portanto, são considerados os

melhores intervalos de resultados para as imagens de nível fácil.

Page 56: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

45

Figura 33: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados pelo SLIC com o

algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,8

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,15

Figura 34: Imagem convencionada como dificuldade fácil, junto aos segmentos gerados pelo SLIC com o

algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,8

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,2

Na imagem média, de acordo com as Figuras 35 e 36 com Folga da Média entre

0,05 e 0,1 e com Folga do Histograma 0,8, Folga das Colunas 0,1 e Tamanho do

Histograma 10, foi observado que nos resultados com folga 0,05 (Figura 35), houve

alguns segmentos semelhantes que não foram unidos pelas diferenças de tonalidade,

intensidade luminosa e textura, porém, há poucos erros de união indevida, ou seja, não

ocorre união de segmentos de regiões diferentes.

Já com a Folga da Média 0,1, representada pela imagem da Figura 36, separou-se

praticamente toda a mata, independente de ser mais clara ou mais escura, e também

separou praticamente todo o pasto, exceto em alguns pontos. Porém ocorreu a união de

Page 57: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

46

áreas que entendemos como indevidas, como a área circular no canto superior esquerdo

com a restinga de mata. Mas no geral esse intervalo de parâmetros geram os melhores

resultados nas imagens de nível médio.

Figura 35: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,8

Tamanho do Histograma:10 Erro de Colunas: 0,1 Folga da Média: 0,05

Figura 36: Imagem convencionada como dificuldade média, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,8

Tamanho do Histograma: 10 Erro de Colunas: 0,1 Folga da Média: 0,1

Na imagem classificada como difícil, de acordo com as Figuras 37 e 38 com

Folga da Média entre 0,05 e 0,02, com Folga do Histograma 0,5, Folga das Colunas 0,0

Page 58: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

47

e Tamanho do Histograma 5, foi observado que no resultado com Folga da Média 0,02

(Figura 37) gera bastante “ruído”, visto que os parâmetros são bem baixos para a união

dos segmentos, porém, não há praticamente união de elementos distintos, até em regiões

como o rio na região onde tem contato com o pasto, que na maioria dos testes realizados

(testes não apresentados neste texto) houve união entre rio e pasto.

Já com a Folga da Média 0,05 (Figura 38), houve bem menos ruído, e ainda

assim, separou muito bem as regiões, sem perdas relevantes da mata ou do rio. Esse

intervalo de parâmetros foi o que gerou os melhores resultados na imagem considerada

como difícil.

Figura 37: Imagem convencionada como dificuldade difícil, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,02

Figura 38: Imagem convencionada como dificuldade difícil, junto aos segmentos gerados pelo SLIC com

o algoritmo de união por histogramas com a média com os parâmetros: Folga do Histograma: 0,5

Tamanho do Histograma: 5 Erro de Colunas: 0,0 Folga da Média: 0,05

Page 59: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

48

4.5 COMPLEXIDADE DO ALGORITMO E TEMPO DE

PROCESSAMENTO

Não foi foco neste trabalho a análise de eficiência dos algoritmos, o que pode ser

fonte de novas pesquisas. As verificações realizadas pelos algoritmos consideram,

sobretudo, a comparação pixel a pixel, portanto, força bruta. Em alguns trechos do

código a complexidade assintótica pode chegar a ordem de O(n4).

Dos testes realizados, o valor médio de tempo de processamento nos testes de

maior duração, que correspondente aos testes que utilizam o histograma mais a média

da escala de cinza ficou entre 20 a 25 minutos por teste, sendo que a média avulsa fica

na faixa de 8 segundos.

Page 60: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

49

5 CONCLUSÕES

Com relação ao algoritmo de segmentação de imagens utilizado, o SLIC com 900

segmentos se mostrou ter um bom custo benefício para a solução do problema, pois

separa bem os elementos em pequenos segmentos e não demandou muito tempo de

processamento para cada teste.

Já se tratando dos algoritmos de união de segmentos, o resultado da junção entre

histograma com a média retornou resultados melhores do que o histograma ou média

avulsas, pois no contexto, a média serviu para definir um intervalo bom genérico (com o

parâmetro Folga da Média com valor 0,05) e o histograma serviu para calibrar em

relação ao intervalo gerado pela média, ou seja, o histograma foi utilizado como uma

etapa de pré-processamento.

A abordagem dos testes definindo imagens com níveis dificuldades se mostrou

mais preciso do que sem níveis de dificuldade, gerando um parâmetro único, portanto é

relevante, nesse caso, trabalhar as imagens de entrada subdividindo com relação a

quantidade de variações e elementos dispostos na imagem.

Em ambas as abordagens, os melhores resultados discutidos podem ser

trabalhados posteriormente tanto de forma supervisionada, com o usuário selecionando

cada segmento e informando o que cada segmento representa (mesmo os “ruídos” dos

resultados podem ser selecionados e unidos ou não de acordo com o interesse do

usuário), ou utilizando como entrada em algum algoritmo de aprendizado de maquina,

para treinar e retornar a identificação que cada segmento representa.

5.1 TRABALHOS FUTUROS

Como trabalhos futuros, pode se realizar o reconhecimento das imagens

trabalhadas utilizando ferramentas de aprendizado de máquina. Podemos trabalhar na

implementação de métricas para validar os testes de modo mais sistemático, como

contabilização de segmentos ou de mudanças de tonalidades. Utilizar novos métodos de

união de segmentos, como média das imagens coloridas ou união por similaridade de

textura. Também buscar automatizar a parametrização, para que venha convergir com

mais exatidão com maior facilidade. Trabalhar a saídas das imagens para melhorar em

Page 61: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

50

outra etapa de pós processamento e por fim, desenvolver a ferramenta de suporte

idealizada inicialmente, para suporte ao CAR.

Page 62: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

51

6 BIBLIOGRAFIA

Achanta Radhakrishna [et al.] SLIC Superpixels Compared to State-of-the-art SuperPixel Method *Artigo+ // Journal of Latex Class Files. - 2011. - 1 : Vol. 6. Alexandre Pedro Ferreira Analisando o SLIC como um gerador de Super Pixels para a Image Foresting Transform (IFT). - *s.l.+ : Universidade de São Paulo, 2016. - Disponível em: https://linux.ime.usp.br/~pfa/mac0499/p1.pdf. Acesso em 2018. Alsabti Khaled, Ranka Sanjay e Singh Vineet An Efficient K-Means Clustering Algorithm. - 1998. - Disponivel em: https://www.cs.utexas.edu/~kuipers/readings/Alsabti-hpdm-98.pdf. Acesso em Outubro, 2018. Alves Alexandra Camargo Filtros. - 2007. - Disponível em: http://lvelho.impa.br/ip09/demos/jbu/filtros.html. Acesso em 2018. Alves Paulo Rafael Imagens de Satélite do Brasil de 1973 a 2016 *Online+ // Cadastro Ambiental. - 22 de 06 de 2017. - 2018. - http://cadastroambiental.com/imagens-de-satelite-do-brasil-de-1973-e-2008-2014-2015-2016-recente/. Augusto Karen Soares Identificação Automática no Grau de Maturação de Pelotas de Ferro *Artigo+ // Dissertação de Mestrado. - Rio de Janeiro : *s.n.+, 2012. Bueno Regis Cortes Detecção de Contornos em Imagens de Padrões de Escoamento Bifásico com Alta Fração de Vazio em Experimentos de Circulação Natural com o uso de Processamento // Tese de Doutorado - Instituto de Pesquisas Energéticas e Nucleares. Autarquia associada à Universidade de São Paulo. - São Paulo : *s.n.+, 2016. - Disponível em: http://pelicano.ipen.br/PosG30/TextoCompleto/Regis%20Cortez%20Bueno_D.pdf. Acesso em Janeiro - 2018. Canny John A Computational Approach to Edge Detection // IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE. - 1986. - Vol. nº 6. Carvalho Ely Bergo de, Rajão Raoni e Giudice Roberta del Uma Breve História da Legislação Florestal Brasileira *Livro+. - Brasília : Observatório do Código Florestal (OCF), 2018. - Vols. Primeira Parte (1500 -1979). - Disponível em http://www.observatorioflorestal.org.br/content/uploads/2018/06/OCF-livro-historia-codigo-florestal.pdf. Cese Alexandre Fernandes e Guimarães David Augusto Histograma de Superpixels para Aplicações em Palinologia Forense. - Campo Grande : *s.n.+, Junho de 2017. - Disponivel em: http://www.gpec.ucdb.br/pistori/orientacoes/planos/davalex2017.pdf. Acesso em 2018. Chipana Fredy Elmer Arias e Iano Yuzo Segmentação de Imagens: abordagens para reconhecimento de placas de veículos. - Campinas : *s.n.+, 2012. - Disponivel em: http://www.sps.fee.unicamp.br/sps2012/proceedings_sps2012/Fredy_veiculos1_SPS2012.pdf. Acesso em 2018. Conci Aura Canny: Detecção de Borda. - Niterói (RJ) : *s.n.+. - Disponivel em: http://www2.ic.uff.br/~aconci/canny.pdf. Acesso em 2018. Gonzalez Rafael C. e Woods Richard E. Digital Image Processing *Livro+. - *s.l.+ : Pearson/Prentice Hall, 2007. - 3ª Edição. Google Google Earth *Online+. - Google. - https://www.google.com/earth/. Oliveira Danielle Ferreira de Confiabilidade Metrológica e Validação de Procedimentos Espectroradiométricos para Medição de Fontes Luminosas // Dissertação de Mestrado. - Rio de Janeiro : Pontifícia Universidade Católica, 2006. - Disponivel em: https://www.maxwell.vrac.puc-rio.br/9324/9324_3.PDF Acesso em Outubro, 2018. Otsu Nobuyuki A Tlreshold Selection Method from Gray-Level Histograms // IEEE TRANSACTIONS ON SYSTREMS, MAN, AND CYBERNETICS. - *s.l.+ : IEEE, 1976. - Vols. SMC-9 nº1. Pearson Karl Contributions to the Mathematical Theory of Evolution. II. Skew Variation in Homogeneous Material // Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences. - 1895. Pedrini Hélio e Schwartz Willian Robson Análise De Imagens Digitais: Princípios, Algoritmos E Aplicações . - São Paulo : Thompson Learning, 2008. Pedro CCM *Online+ // https://br.ccm.net/. - 30 de 06 de 2017. - Outubro de 2018. -

Page 63: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

52

https://br.ccm.net/contents/712-a-codificacao-cie-lab-l-a-b. Praes Elaine Oliveira CÓDIGO FLORESTAL BRASILEIRO: EVOLUÇÃO HISTÓRICA E DISCUSSÕES ATUAIS SOBRE O NOVO CÓDIGO FLORESTAL *Artigo+ // VI Colóquio Internacional: Educação e Contemporaniedade. - São Cristovão (SE) : *s.n.+, 2012. SEBRAE Cadastro Ambiental Rural: como regularizar sua propriedade. *Livro+. - Cuiabá, MT : SEBRAE, 2017. - Disponivel em: http://sustentabilidade.sebrae.com.br/Sustentabilidade/Para%20sua%20empresa/Publica%C3%A7%C3%B5es/5-Cadastro-Ambiental-Rural_MIOLO-final.pdf. Acesso em 2018. Silva Ricardo Heinen Borges da CADASTRAMENTO AMBIENTAL RURAL DE UMA PROPRIEDADE GEORREFERENCIADA DE PARANATINGA – MT *Artigo+. - Cuiabá : *s.n.+, 2016. - Disponível em: http://www.ufmt.br/fenf/arquivos/347daa88035b776b2c08e51a11f76d00.pdf Acesso em 2018. Spavorek Gerd [et al.] A revisão do Código Florestal brasileiro. Novos estudos - CEBRAP, *Artigo+ // SPAROVEK, Gerd et al . A revisão do Código Florestal brasilei. - São Paulo : *s.n.+, 2011. Walt Stéfan van der [et al.] scikit-image: Image processing in Python. - 2014. - http://dx.doi.org/10.7717/peerj.453.

Page 64: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

53

7 ANEXO A

Código em Python de todo o sistema desenvolvido:

Page 65: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

54

1 from __future__ import print_function

2

3 # BIBLIOTECAS

4 import matplotlib.pyplot as plt

5 import numpy as np

6 import skimage

7 from skimage.data import astronaut

8 from skimage.color import rgb2gray

9 from skimage.filters import scharr, roberts, prewitt, laplace,

sobel,gaussian

10 from skimage.segmentation import felzenszwalb, slic, quickshift,

watershed, random_walker

11 from skimage.segmentation import mark_boundaries

12 from skimage.util import img_as_float

13 from skimage.util import img_as_int

14 from skimage import exposure

15 import cv2

16 import time

17 #import plotly.plotly as py

18

19

20 #----------FUNCAO QUE RETORNA O SLIC------------------

21 def Slic(nSeg, comp, sigma, img):

22 #Roda funcao de segmentacao SLIC

23 segments_slic = slic(img, nSeg, comp, sigma)

24 segcopy = segments_slic[:]

25 return (segments_slic, segcopy)

26 #------------------------------------------------------

27

28 #-----FUNCAO QUE RECEBE A LARGURA E A ALTURA DA IMAGEM

29 def LarguraAltura(segments_slic):

30 ### TODO: USAR ESTE MODELO...

31 altura = np.size(img,0)

32 largura = np.size(img,1)

33 return (altura, largura)

34 #------------------------------------------------------

35

36 #-----FUNCAO QUE INICIALIZA ALGUMAS VARIAVEIS----------

37 def InicializaVariaveis(segments_slic):

38

39 #VARIAVEL DO FOR ABAIXO

40 k = 0

41

42 #VARIAVEL QUE RECEBE A MEDIA

43 media = []

44

45 #VARIAVEL QUE CONTA OS PIXELS

46 countpx = []

47

48 #VARIAVEL QUE RECEBE A MEDIA FINAL

49 mediaF = []

50

51 #VARIAVEL FLAG QUE RECEBE 1 SE JA PERCORRIDO

52 flag = []

53

54 #VARIAVEL QUE RECEBE OUTRA MEDIA FINAL

55 mediaFinal = []

56

57 #VARIAVEL AUXILIAR

58 aux = []

59

60 #VARIAVEL CONTADOR

61 count = []

62

63 #ZERA TODOS OS VETORES

64 for k in range(len(np.unique(segments_slic))):

65 media.append(0)

66 countpx.append(0)

Page 66: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

55

67 mediaF.append(0)

68 flag.append(0)

69 mediaFinal.append(0)

70 aux.append(0)

71 count.append(0)

72 #media0.append(0)

73

74 #RETORNA TODOS OS VETORES

75 return (media, countpx, mediaF, flag, mediaFinal, aux, count)

76

77 #---------FUNCAO QUE CHAMA OS HISTOGRAMAS

78 def CriaHistogramas(segments_slic, folgaH, intervalo_de_entrada,

erro_das_colunas):

79

80 #DEFINE UM VETOR QUE PEGA CADA HISTOGRAMA UNICO

81 vetHistograma = []

82

83 #VALOR RECEBE A QUANTIDADE DE PIXEL DE CADA SLIC

84 valor = []

85 #-----CRIA HISTOGRAMAS PARA CADA SLIC----------------------------

-------

86 for i in range(len(np.unique(segments_slic))):

87

88 valor.append(0)

89 vetHistograma.append(0)

90

91 #CHAMA A FUNCAO HISTOGRAMA COM O INTERVALO DE ENTRADA PARA

SER DIVIDIDO POR 256

92 vetHistograma[i], intervalo, somaPixel =

Histograma(segments_slic, i, intervalo_de_entrada)

93

94 #valor contem a soma de todos os pixels de um slic

95 valor[i] = somaPixel[i]

96 #----------------------------------------------------------------

--------

97 '

98 #----CHAMA A FUNCAO QUE COMPARA HISTOGRAMAS-------------------

99 segments_slic = ComparaHistograma(segments_slic, vetHistograma,

intervalo, valor, intervalo_de_entrada, folgaH, erro_das_colunas)

100 return (segments_slic)

101

102 #---------FUNCAO QUE INICIALIZA E CRIA OS HISTOGRAMAS

103 def Histograma(segments_slic, Valor_segment_slic, intervalo_de_entrada):

104

105 #CRIA DUAS VARIAVEIS: UMA PARA RECEBER O HISTOGRAMA E OUTRA PARA

SOMAR OS PIXELS

106 histograma = []

107 somaPixel = []

108

109

110 #ZERA HISTOGRAMA

111 for i in range(256):

112 histograma.append(0)

113

114 #print(1.1)

115 #FOR PARA PERCORRER A IMAGEM

116 for i in range(altura):

117 for j in range(largura):

118

119 #ZERA SOMAPIXEL

120 somaPixel.append(0)

121

122 #VERIFICA QUAL DOS SLICS QUEREMOS COMPARAR

123 if(Valor_segment_slic == segments_slic[i][j]):

124 #VALUEGRAYSCALE RECEBE A IMAGEM EM ESCALA DE

CINZA EM ESCALA DE 0 A 255

125 valueGrayScale = (int)(round(imgray[i][j] *

255))

Page 67: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

56

126

127

128 #HISTOGRAMA INCREMENTA NA POSICAO DE ACORDO

COM A TONALIDADE DA ESCALA DE CINZA

129 histograma[valueGrayScale] += 1

130

131 #INCREMENTA A QUANTIDADE DE PIXEL Pode ser

que tenha um erro aqui por talvez ser segments_slic[i][j] no lugar de

valor_seg_slic

132 somaPixel[Valor_segment_slic] += 1

133

134 #divide os intervalos de acordo com a entrada

135 intervalo = (int)(256 / intervalo_de_entrada)

136 #---SUBSTITUI DE ACORDO COM O INTERVALO----------

137 soma = 0

138 vet = []

139 count = 0

140 j = 0

141

142 for i in range(0, 255, intervalo):

143 vet.append(0)

144

145 if((j + i) < 256):

146

147 for j in range (intervalo):

148 soma += histograma[j+i]

149 vet[count] = soma

150 count += 1

151 soma = 0

152 if((i + intervalo) <= 256):

153 ValorI = i + intervalo

154 else:

155 ValorI = i

156 #Pega o restante do vetor

157 if(ValorI < 256):

158 vet.append(0)

159 while(ValorI < 256):

160 soma += histograma[ValorI]

161 ValorI += 1

162 vet[count] = soma

163 #-----------------------------------------------

164 return (vet,intervalo, somaPixel)

165

166 #-----------------FUNCAO QUE COMPARA OS HISTOGRAMAS

167

168 def ComparaHistograma(segments_slic, vetHistograma, intervalo, valor,

intervalo_de_entrada, folgaH, erro_das_colunas):

169 #---------DEFINE VARIAVEIS DE CONTADOR E DE FLAG-----------

170 count = 0

171 #contador que redefine para uma ordem crescente o segments_slic

172 vetRearranjo = []

173 #contador que pega o valor do primeiro i que entra no laco de

verificacao

174 count_do_primeiro_slic = 0

175 #flag para evitar ir para a segunda opcao se ja entrou na

primeira

176 flagcount = 0

177 #flag

178 flag = []

179 #--DEFINE A VARIAVEL DE QUEREMOS DE FOLGA------------------------

---------

180 #folga = 0.2

181 #----------------------------------------------------------------

--------

182

183

184 #---------ZERA A FLAG-------------------------------------------

185 for i in range(0,len(np.unique(segments_slic))+1,1):

Page 68: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

57

186 flag.append(0)

187 #---------------------------------------------------------------

188

189

190 #define uma variavel fixa pois o np.unique(segments_slic) altera

com as iteracoes

191 FlagUniqueSegments = len(np.unique(segments_slic))

192

193 #FOR PARA O I QUE SERA O VETOR DE HISTOGRAMA A SER

COMPARADO(BASE)

194 for i in range(FlagUniqueSegments):

195 #FOR PARA O K QUE SERA O VETOR DE HISTOGRAMA QUE IRA

COMPARAR COM O I

196 for k in range(i + 1, FlagUniqueSegments ,1):

197

198 #CHAMA A FUNCAO QUE COMPARA PONTO A PONTO DOIS

HISTOGRAMAS

199 bool1, count, k = Comp2Hist(i, k, count,

vetHistograma, folgaH, valor, flag, intervalo_de_entrada, erro_das_colunas)

200

201 #VERIFICA SE O RESULTADO DA COMPARACAO ENTRE 2 SLICS

DEU VERDADEIRO(OS DOIS SAO IGUAIS)

202 if (bool1 == True):

203 for i1 in range(altura):

204 for j1 in range(largura):

205 #SE OS DOIS SAO IGUAIS, AMBOS

VIRAM UM SO

206 if(segments_slic[i1][j1] == k):

207 segments_slic[i1][j1] = i

208

209

210 for l in range (0,len(np.unique(segments_slic)), 1):

211

212 if(l < len(np.unique(segments_slic))):

213 vetRearranjo.append(0)

214 vetRearranjo[l] = np.unique(segments_slic)[l]

215 for i1 in range(altura):

216 for j1 in range(largura):

217 if(vetRearranjo[l] == segments_slic[i1][j1]):

218 segments_slic[i1][j1] = l

219

220 return (segments_slic)

221

222 #---------FUNCAO QUE COMPARA 2 HISTOGRAMAS-----------------------------

223 def Comp2Hist(i, k, count, vetHistograma, folgaH, valor, flag,

intervalo_de_entrada,erro_das_colunas):

224 #DEFINE BOOL1 COMO FALSE INICIALMENTE

225 bool1 = False

226 ValorDesprezivel = 0.01

227

228 #VERIFICA SE O HISTOGRAMA I E O HISTOGRAMA K JA FOI VERIFICADO

229 if(flag[i] == 0 and flag[k] == 0):

230 #FOR QUE PERCORRE O TAMANHO DO HISTOGRAMA

231 for j in range(0, len(vetHistograma[i]),1):

232 if(i ==0 and k == 1):

233 arq.writelines( (str)(vetHistograma[k][j]))

234 arq.writelines( (str)(vetHistograma[i][j]))

235 #DEFINE OS SLICS, DIVIDINDO NORMALIZADO O VALOR DO

HISTOGRAMA PELA QUANTIDADE TOTAL DE PIXELS

236 slic1 = ((float)(vetHistograma[k][j]) /

(float)(valor[k]))

237

238 slic2 = ((float)(vetHistograma[i][j]) /

(float)(valor[i]))

239 #---------------------------------------------------

--------------------------------------

240

Page 69: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

58

241 #PEGA O MAIOR SLIC

242 MaiorSlic = max(slic1, slic2)

243 MinSlic = min(slic1, slic2)

244 #Extrai a porcentagem de folga do maior slic

245 PCorrente = MaiorSlic * folgaH

246

247 #VERIFICA SE A DIFERENCA DOS ENTRE OS SLICS ESTA DE ACORDO

COM O VALOR MAXIMO DE FOLGA

248 if((abs)(MaiorSlic - PCorrente) > MinSlic and

(abs)(MaiorSlic - PCorrente) > ValorDesprezivel):

249

250 bool1 = False

251 else:

252 count += 1

253 #SE TODAS AS POSICOES DO VETOR ESTIVEREM DE ACORDO COM O

VALOR DE FOLGA, RETORNA VERDADEIRO

254

255 if(count >= ((int)(len(vetHistograma[i])) -

(int)(len(vetHistograma[i]) * erro_das_colunas))):

256 bool1 = True

257 flag[k] = 1

258 #----------------------------------------------------------

--------------------------------

259

260 #SE O HISTOGRAMA I OU O HISTOGRAMA K JA FOI VERIFICADO, RETORNA

FALSE

261 else:

262

263 bool1 = False

264 #----------------------------------------------------------------

----

265

266 #ZERA NOVAMENTE O CONTADOR

267 count = 0

268

269 return (bool1, count, k)

270

271

272 #---------FUNCOES DE MEDIA DE ESCALA DE CINZA-----------------------

273

274 def Media(segments_slic, altura, largura):

275 #Media com 2 FOR's

276 #PERCORRE A IMAGEM INTEIRA

277 for i in range(altura):

278 for j in range(largura):

279

280 #A VARIAVEL INDEX RECEBE O SEGMENTO NA POSICAO

[I][J]

281 index = segments_slic[i][j]

282 #A MEDIA NA POSICAO INDEX RECEBE O VALOR EM CINZA NA

POSICAO [I][J]

283 media[index] += imgray[i][j]

284

285 #O CONTADOR DE PIXEL INCREMENTA

286 countpx[index] += 1

287

288 #Media final

289 for k in range(len(np.unique(segments_slic))):

290 mediaF[k] = media[k]/countpx[k]

291 return (mediaF)

292

293

294

295 #-----FUNCAO QUE TRANSFORMA

296 def Transforma(segments_slic, mediaF, folga):

297

298 #CRIA CONTADOR

299 count = 0

Page 70: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

59

300

301 for j in range(len(mediaF)):

302 if(flag[j] == 0):

303 aux[j] = count

304 for k in range(j+1, len(mediaF),1):

305 subtracao = mediaF[j] - mediaF[k]

306 if((flag[k] == 0) and (subtracao <= folga)

and (subtracao >=((-1) * folga))):

307 aux[k] = count

308 flag[k] = 1

309 count +=1

310 return ( aux)

311

312 #FUNCAO QUE CONVERTE OS SEGMENTOS SLIC ORIGNIAIS NOS NOVOS

313 def Converte(segcopy, segments_slic, transforma, altura, largura):

314

315 for i in range(altura):

316 for j in range(largura):

317 segcopy[i][j] = transforma[segments_slic[i][j]]

318 segments_slic = segcopy

319 return (segments_slic)

320 #----------------------------------------------------------------

321

322

323

324 #---------------------------------------------------------------------

325

326 #-------------------------MAIN--------------------------------------

327 arq = open('saida2.txt', 'w')

328

329 #im1 :------------------- IMAGEM DE ENTRADA----------

330 im1 = cv2.imread('Captura de Tela (82).png')

331 img = img_as_float(im1[::1, ::1])

332 #-----------------------------------------------------

333

334 #-TRANSFORMA EM ESCALA DE CINZA E IMPRIME TODA A MATRIZ

335 # Configuracao para imprimir toda a mtz

336 np.set_printoptions(threshold = np.inf)

337 # Converte para tons de cinza

338 imgray = rgb2gray(img)

339 #print (imgray[0][0])

340 #-------------------------------------------------------

341

342 #----------------------SLIC--------------------------

343 #Parametros: img, num_segmentos, Compactness, sigma

344 #nSeg = 12

345 #comp = 10

346 #sigma = 5

347 #-----------------------------------------------------

348

349

350 #-----CRIA UM NOVO SLIC-------------------

351

352 ref_arquivo = open("testeHist4.txt", "r")

353 linha = ref_arquivo.readline()

354 while(linha):

355 inicio = time.time()

356 arq = open('saida1.txt', 'w')

357 valores = linha.split()

358 imagemName = "Captura de Tela ("+ valores[2] + ").png"

359 #imagemName = "Captura de Tela (98).png"

360

361 print (imagemName, linha)

362 #im1 :------------------- IMAGEM DE ENTRADA----------

363 im1 = cv2.imread(imagemName)

364 img = img_as_float(im1[::1, ::1])

365 im2 = im1[::2,::2]

366 #-----------------------------------------------------

Page 71: UNIVERSIDADE FEDERAL DE MATO GROSSO CAMPUS … Romas T… · In the last century, many questions have been raised about the concern about the environment and the impacts that the

60

367

368 #-TRANSFORMA EM ESCALA DE CINZA E IMPRIME TODA A MATRIZ

369 # Configuracao para imprimir toda a mtz

370 np.set_printoptions(threshold = np.inf)

371 # Converte para tons de cinza

372 imgray = rgb2gray(img)

373 #print (imgray[0][0])

374 #-------------------------------------------------------

375

376 #----------------------SLIC--------------------------

377 #Parametros: img, num_segmentos, Compactness, sigma

378 #nSeg = 12

379 #comp = 10

380 #sigma = 5

381 #-----------------------------------------------------

382

383

384 #-----CRIA UM NOVO SLIC-------------------

385 segments_slic, segcopy= Slic(900,10,5,img)

386

387 #-----RETORNA A ALTURA E A LARGURA DA IMAGEM---------

388 altura, largura = LarguraAltura(segments_slic)

389

390

391

392 #FUNCAO PARA COMPARAR CADA SLIC USANDO HISTOGRAMA EM ESCALA DE

CINZA

393

394 folgaH = (float)(valores[3])

395 intervalo_de_entrada = (float)(valores[4])

396 erro_das_colunas = (float)(valores[5])

397 criaHistogramas = CriaHistogramas(segments_slic,

folgaH,intervalo_de_entrada, erro_das_colunas)

398

399 folga = (float)(valores[6])

400 media, countpx, mediaF, flag, mediaFinal, aux, count =

InicializaVariaveis(segments_slic)

401 mediaF = Media(criaHistogramas, altura, largura)

402 transforma = Transforma(criaHistogramas, mediaF, folga)

403 segfinal = Converte(segcopy, criaHistogramas, transforma, altura,

largura)

404

405 #fecha arquivo

406 arq.close()

407 fim = time.time()

408 tempo = (str)(fim - inicio)

409

410 #PARA HIST + MEDIA

411 resul_slic = 'TesteAtualFinal' +valores[0] + valores[1] +

valores[2] +"folgaH" + valores[3] + "intEnt"+ valores[4] + "ErroC"+ valores[5]

+ "folgaM" + valores[6] +"Tempo" + tempo

412 #PARA HIST

413 #resul_slic = 'TesteParaVariarIntervaloH ' +valores[0] +

valores[1] + valores[2] +"folgaH" + valores[3] + "intEnt"+ valores[4] +

"ErroC"+ valores[5] + "Tempo" + tempo

414 #PARA MEDIA

415 #resul_slic = 'TesteAtualFinalMedia' +valores[0] + valores[1] +

valores[2] + "folgaM" + valores[6] +"Tempo" + tempo

416

417 plt.imshow(mark_boundaries(img, segcopy), cmap = 'gray')

418 plt.savefig('%s.jpg'%(resul_slic))

419 linha = ref_arquivo.readline()

420