Você está na página 1de 15

ToolBox de Processamento de

Imagem do MATLAB

Conceitos básicos utilizados Exemplo 1 (Some basic Topics)

e conceitos avançados Exemplo 2 (Advanced Topics)

Maria José Angélico Gonçalves


mjose@iscap.ipp.pt

Junho de 2007

T151a021 - Identificación e catalogación de imaxes de interfaz

Curso de Doutoramento: Engenharia de SW basada en Componentes


Reutilizables, Aplicaciones en Interfaces Hombre-Maquina
Índice
1. Introdução ..................................................................................................................... 3
2. Etapas de um Sistema Digital ....................................................................................... 4
1ª Etapa - Aquisição de Imagem ................................................................................... 4
2ª Etapa – Pré processamento ....................................................................................... 4
Realce da imagem ..................................................................................................... 4
Equalização de histograma ....................................................................................... 5
3ª Etapa – Segmentação ................................................................................................ 5
Utilização de uma operação morfológica de abertura............................................... 5
4ª Etapa – Representação e descrição da imagem ........................................................ 5
Utilização de operações estatísticas sobre objectos .................................................. 6
5ª Etapa – Reconhecimento e interpretação .................................................................. 6
3. Conclusão...................................................................................................................... 6
4. Bibliografía ................................................................................................................... 6
Anexo 1 : MatLab – Exemplo 1: Conceitos Básicos ........................................................ 8
Anexo 2: MatLab – Exemplo 2: Conceitos Avançados .................................................. 13

2
1. Introdução
O processamento digital de imagens tem atraído grandes áreas de interesse nas
últimas décadas. Tem como objectivo principal desenvolver procedimentos para extrair
informações de uma imagem de forma adequada para o processamento automático.

A tecnologia de processamento digital de imagens tem aumentado os seus


domínios, nas mais diversas áreas, como por exemplo: Geologia, Cartografia, Ciências
Atmosféricas; Exploração Mineira, Análise de Recursos Naturais e Meteorologia;
Astronomia; Análise de imagens biomédicas, incluindo a contagem de automática de
células e exames de cromossomas, Obtenção de imagens médicas por radiologia ou
ultra-som; Diagnóstico Assistido por Computador (CAD), entre outras inúmeras
aplicações.

Os sistemas CAD analisam a imagem para detectar e caracterizar


quantitativamente regiões de interesse. Ou seja, os sistemas CAD têm como objectivos:
1. Fazer um melhoramento da imagem, dando especial atenção às zonas suspeitas de
conter anomalias; 2. Produzir uma segunda opinião sobre um determinado diagnóstico e
3. Implementar sistemas de autoavaliação e reciclagem para radiologistas com diversos
graus de experiência e aprendizagem.

A morfologia matemática é uma tecnologia de tratamento de imagens que tem


como principal abordagem tratar imagens extraindo informações detalhadas da estrutura
geométrica dos objectos, usando operadores de transformações. Descreve
quantitativamente as estruturas geométricas e funciona como uma técnica na concepção
de algoritmos na área do PDI (Processamento Digital de Imagem), dispondo de
ferramentas básicas como os detectores de borda e os filtros morfológicos. Age sobre
imagens digitais a partir de elementos estruturantes. Estes são conhecidos como sendo
um conjunto completamente definido e conhecido (forma e tamanho), o qual é
comparado, a partir de uma transformação, ao conjunto desconhecido da imagem. O
resultado desta transformação permite avaliar o conjunto desconhecido.

A toolboox (caixa de ferramentas) da morfologia matemática é um conjunto


específico de arquivos contendo operadores morfológicos que tem como plataforma o
MatLab.

Neste trabalho definem-se as etapas de processamento de imagem e enquadram-


se as funções existentes nos exemplos 1 e 2 da caixa de ferramentas do processamento
de imagem nas diferentes fases.

Na execução dos exemplos não encontrei nenhum problema. À medida que ia


executando os comandos consultava a bibliografia, que consta em secção própria,
nomeadamente a ajuda do MatLab e o material de apoio à disciplina.

Em anexo é efectuada uma breve introdução aos conceitos utilizados no


processamento de imagem, para um melhor e mais fácil entendimento da caixa de
ferramentas. No anexo 1, MatLab : Exemplo 1 – Conceitos Básicos, e no anexo 2 ,
MatLab – Exemplo 2: Conceitos Avançados, são apresentadas as funções utilizadas nos
exemplos 1 e 2 e é efectuada uma breve explicação dos conceitos envolvidos em cada
uma delas.

3
2. Etapas de um Sistema Digital
Méndez, A. e Lado, M. J. (2007) definem as seguintes etapas no processamento
digital de imagem: Aquisição de imagem; Pré processamento; Segmentação;
Representação e Descrição; e Reconhecimento e Interpretação. Cada uma destas etapas
interage com conhecimento prévio já estudado e abordado por anteriores investigadores
(ver imagem 1).

Imagem 1 – Etapas e elementos de um sistema digital.


Fonte: Méndez, A. e Lado, M. J. (2007)

1ª Etapa - Aquisição de Imagem

A 1ª etapa do processamento de imagens é a obtenção da imagem digital. A


obtenção desta imagem pode ser efectuada através de um sensor, leitura de uma imagem
de um ficheiro, imagens de raios X, ecografias, TAC, etc.

No anexo 1, ponto 1 e no anexo constam as funções utilizadas (três) no MatLab


para ler e visualizar uma imagem.

Na versão actual da toolbox são suportados os seguintes formatos de imagem:


BMP; CUR; GIF;HDF; ICO; JPG ou JPEG; PBM; PCX; PGM; PNG; PNM; RAS; TIF
ou TIFF e XWD.

Existe ainda o formato DICOM (Digital Imaging and Communications in


Medicine) usado para armazenamento e transferência de imagens médicas. Por ser um
mero formato de imagem é tratado por um conjunto de funções especificas.

2ª Etapa – Pré processamento

Nesta etapa a imagem original é melhorada, ou seja, são aumentadas as


diferenças entre as anomalias e o tecido são. É retirado o ruído à imagem, melhorado o
seu contraste e realçadas as regiões da imagem de maior interesse, normalizando os
níveis de cinza entre os limites máximos e mínimo da escala de tons de cinzento. Desta
etapa depende o êxito das etapas seguintes.

Realce da imagem

O MatLab permite fazer o melhoramento de imagens. O ajuste de intensidade é


uma técnica de mapeamento dos valores de intensidade da imagem original para um

4
novo intervalo de valores na imagem derivada. O resultado pode ser a variação do
contraste e o branqueamento ou o escurecimento da imagem (Anexo 1- ponto 2.1).

Equalização de histograma

Um outro processo consiste na transformação dos valores de intensidade, de


forma que o histograma da imagem resultante seja uma aproximação a um histograma
desejado. Este processo designa-se por equalização de histograma (Anexo 1 - ponto
2.2).

3ª Etapa – Segmentação

Nesta etapa analisam-se as regiões “suspeitas” da imagem (ROIs). Este processo


determina a sensibilidade do sistema. Ou seja, capacidade do sistema CAD para detectar
correctamente anomalias. A segmentação de uma imagem consiste em dividir a imagem
de entrada nas suas partes constituintes ou objectos (Méndez, A. e Lado, M. J. ,2007).

Utilização de uma operação morfológica de abertura

Para estimar o valor dos Pixels do fundo da imagem original é utilizada uma
operação morfológica de abertura (ver anexo 2, ponto 2 e ponto 3). A abertura
morfológica é uma erosão seguida de uma dilatação, usando o mesmo elemento
estruturante (matriz binária). Em MatLab é representado pelo objecto Strel, para ambas
as operações.

Posteriormente, para obter uma imagem com um fundo homogéneo subtrai-se a


imagem original ao fundo anteriormente criado (ver anexo2, ponto 4). Esta técnica é
geralmente utilizada para realçar objectos mediante a supressão das estruturas de fundo
da imagem, causadas por ruído aleatório. Subtraindo duas imagens, tem-se uma terceira
imagem em que as altas variações de densidade de fundo são removidas. Para acentuar
as diferenças é efectuado o realce da imagem (ver anexo 2, ponto 5) e, finalmente, é
efectuada a conversão da imagem numa matriz binária (ver anexo 2, ponto 6).

O resultado da aplicação desta etapa é a obtenção dos dados dos pixels em bruto,
que constituem o contorno de uma região determinada. Essa região poderá ser uma parte
da imagem ou toda a imagem (Méndez, A. e Lado, M. J. ,2007).

4ª Etapa – Representação e descrição da imagem

Após a segmentação da imagem, a etapa seguinte envolve a quantificação de


atributos da imagem, como tamanho, contraste e forma dos seus objectos constituintes.
Dependendo da sua natureza, estes atributos podem ou não ser compatíveis com a visão
humana.

Méndez, A. e Lado, M. J. (2007) definem representação como uma parte da


solução para transformar os dados dos pixels em bruto numa forma adequada para o seu
tratamento. Definem, ainda, a descrição como a extracção de características com alguma
informação quantitativa de interesse para diferenciar uma classe de objectos de outra.

5
É possível a definição de um grande número de atributos baseados em fórmulas
matemáticas que podem não ser facilmente compreendidos por um observador humano.

Méndez, A. e Lado, M. J. (2007) representam e descrevem o objecto dividindo


as características do mesmo em dois grupos: Descritores de contorno (descritores
básicos, Números de forma, Descritores de Fourier e Momentos) e Descritores de região
(Descritores básicos e textura).

Utilização de operações estatísticas sobre objectos

No anexo 2, ponto 7, 8, 9,10 e 11 constam algumas funções utilizadas na toolbox


do MatLab que permitem efectuar operações estatísticas sobre objectos existentes na
imagem.

5ª Etapa – Reconhecimento e interpretação

Depois das características terem sido extraídas e seleccionadas devem ser


classificadas para determinar o grau de anomalia.

(Méndez, A. e Lado, M. J. ,2007) referem que o reconhecimento é o processo de


atribuição de uma etiqueta a um objecto, com base nas características que lhe foram
identificadas. Referem, ainda, que a interpretação implica atribuir significado a um
conjunto de objectos reconhecidos.

3. Conclusão
Constitui objectivo deste trabalho efectuar uma síntese dos conceitos de
processamento de imagem apresentados no material de apoio ao curso, utilizados nos
exemplos 1 e 2 da caixa de ferramentas de processamento de imagem (Image
Processing Toolbox).

Os exemplos apresentados visam introduzir conceitos de processamento digital


de imagem. Para cada etapa do processamento digital de imagem foram apresentadas
algumas técnicas. Na segmentação foi utilizada uma operação morfológica de abertura
que visou o escurecimento do fundo da imagem. Posteriormente, aplicou-se uma técnica
de realce de imagem (técnica também utilizada na fase de pré processamento de
imagem). Finalmente, obteve-se uma imagem binária subtraindo a imagem de fundo à
imagem original.

Nos últimos passos do exemplo 2 foram apresentados conceitos que identificam


objectos existentes na imagem, obtém propriedades de pixels e regiões da imagem e
efectuam operações estatísticas sobre objectos.

4. Bibliografía

6
Getting Started withMATLAB® 7. The MathWorks, Inc. em
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/getstart.pdf

Méndez A., Tourino M. J. (2007) Identificación Y Catalogación de Imágenes de


Interfaz, Área de Lenguajes y Sistemas Informáticos, Departamento de Informática,
Universidade de Vigo, Vigo.

Morais V., Vieira C. (2006). MatLab 7&6- Curso completo. FCA – Editora Informática,
Lisboa.

7
Anexo 1 : MatLab – Exemplo 1: Conceitos Básicos

Para trabalhar com a Toolbox de Processamento de imagem é necessário


dominar, previamente, alguns conceitos, tais como: O Pixel; O Mapa de cor; Classes de
armazenamento em memória; e Tipos de imagens.

O elemento básico de uma imagem é o ponto, designado por pixel. Um pixel é


caracterizado por duas propriedades fundamentais: a posição e a cor. Assim, uma
imagem é formada por um conjunto de pontos (pixels) que se agrupam segundo uma
determinada ordem e possuem uma cor. No espaço do Matlab a representação de uma
imagem, que é vista como uma matriz de pixels, é traduzida numa matriz de dados, onde
são aplicadas operações matemáticas e algébricas. Méndez A. e Lado J (2007) referem
que “Uma imagem digital é uma representação discreta da imagem f(x,y)”.

Um mapa de cor é uma matriz bidimensional de dimensão m*n. O número de


cores distintas é indicado pelo nº de linhas (m). Cada cor é decomposta em
componentes representados pelas colunas (n). A Toolbox assume que todas as cores são
representadas usando um mapa RGB.

Devido à enorme quantidade de dados que uma imagem comporta, mesmo de


pequena dimensão, o MatLab, para armazenar imagens, usa matrizes lógicas e matrizes
de inteiros sem sinal de 8 ou 16 bits. Assim, preferencialmente, são usadas as classes
logical, unit 8 ou unit 16 para a representação de dados da imagem. No entanto, certas
operações podem requerer que os dados sejam convertidos para um formato específico
antes de serem realizadas, podendo, igualmente, produzir resultados diferentes.

Existem vários tipos de imagem. Um tipo de imagem define a relação existente


entre o valor dos dados e a sua representação na cor dos pixels. A Toolbox de
processamento de imagem suporta vários tipos de imagem: Binária, Intensidade, RGB e
Indexada.

A representação binária apenas tem 2 cores, preto e branco. No MatLab é


representada por uma matriz de 0 e 1, correspondendo aos pixels pretos e brancos,
respectivamente. O tipo de dados lógico é o mais apropriado para armazenar estes dados
em memória, sendo que cada pixel é representado por um bit. Utilizando funções de
conversão logical; Single; double; uintx e intx (com x=8,16, 32 ou 64 bits).

Para uma imagem de intensidade denominada, também, intensidad digital ou


níveis de cinzento (Méndez A. e Lado J, 2007) os valores dos pixels indicam níveis de
intensidade numa dada escala. Normalmente usa-se a escala de tons de cinzento. Em
geral, os níveis mais baixo e mais alto da escala representam o preto e o branco,
respectivamente. A imagem é formada por uma matriz de pixels 2D de dimensão m*n e
pode ser do tipo uint8, uint16,int16, single ou Double. O MatLab usa um mapa de cor
interno, em tons de cinzento, para a visualização de imagens deste tipo.

A imagem RGB também designada Truecolor, é formada por três planos de cor:
o vermelho, o verde e o azul. A cor de cada pixel é indicada pelo seu próprio valor, ou
seja RGB(red,green,blue) cujos elementos são armazenados nos respectivos planos de
cor, na posição correspondente do pixel. Para uma imagem RGB de tamanho m*n, a

8
matriz de pixels 3D tem dimensão m*n*3 e pode ser do tipo uint8, uint16, single ou
Double.

A imagem indexada, também designada por pseudocolor, é formada por uma


matriz de pixels e um mapa de cor RGB. A matriz de pixels tem dimensão m*n e pode
ser do tipo logical, uint8, uint16, single ou double.

Finalmente, podemos ter um caso especial de imagem, a imagem com várias


frames (imagens). Trata-se de um ficheiro ou uma matriz de imagem que contém várias
imagens e que estão de alguma forma relacionadas. Representam-se por uma matriz 4D,
onde a quarta dimensão representa o índice da frame. Todas as frames devem ser
imagens do mesmo tipo e do mesmo tamanho e, no caso de imagens indexadas, devem
partilhar o mesmo mapa de cor.

Inicia-se o trabalho com a explicação de alguns conceitos básicos de


processamento de imagem.

No exemplo 1 - Some basic Topics - são introduzidos alguns conceitos básicos


para processamento de imagem, tais como: leitura e visualização de uma imagem,
equalização do histograma.

1. Ler e visualizar uma imagem

Leitura de imagens

A leitura de uma imagem a partir de um ficheiro é realizada através da função imread.


Esta função pode incluir vários parâmetros apropriados ao tipo de imagem a ler.

A forma mais simples de leitura de uma imagem é a seguinte:

Img = imread('filename');
Exemplo:
Img = imread('pout.tif');
‘filename’– localização e nome do ficheiro, incluindo a extensão

Por vezes, na leitura de uma imagem indexada é importante guardar o mapa de


cor utilizado pela imagem. Para isso é fornecida mais uma variável de saída na
invocação da função imread. O mapa de cor é armazenado na matriz mapa, do tipo
double e de dimensão 256*3.

[img,map] = imread(‘filename’)

Outro exemplo de utilização da função, é a leitura de uma imagem com vários


frames. Neste caso é incluído um parâmetro que indica qual a frame a extrair. Primeiro
é realizada a pré alocação da memória, optimizada para imagens binárias, e depois lidas
as frames, uma a uma, concatenando-as ao longo da 4ª dimensão.

Multiframe= logical(zeros(128,128,1,10)
For frame=1:10
Multiframe(:, :, :, frame)=imread(‘filename’,frame)

9
end

Visualização de imagens

A toolbox possibilita várias técnicas de visualização de imagem. A função mais


utilizada para a visualização de imagem é a imshow (Help MatLab 7.1,2005).

Img= Imread(‘filename’) imshow('filename')


imshow(Img)

Contudo, a função imtool, também, pode ser utilizada.

Imtool * Img = imread('filename'); imtool('filename');**


imtool(Img)**
*- Abre uma janela nova para, posteriormente, se introduzir uma imagem
**- Abre a imagem moon.tif numa janela.

A função imtool abre a janela que contém as ferramentas de tratamento de


imagem, num ambiente integrado, permitindo executar algumas tarefas comuns do
processamento de imagem. Esta janela possui todas as potencialidades da visualização
da imagem da função imshow mas fornece, também, o acesso a outras ferramentas para
navegação e exploração de imagens, tais como: barras de scroll, região de Pixels,
ferramentas de informação de imagem e a ferramenta de ajuste do contraste da imagem.

Tal como no exemplo anterior estas funções podem incluir vários formatos
como, por exemplo, imshow(‘filename’,mapa) ou imtool(‘filename’,mapa), etc.

A sintaxe da função permite, ainda, especificar pares de parâmetros adicionais,


na forma chave-valor, que configuram diversas propriedades relacionadas com a
visualização da imagem. Exemplos de utilização destes parâmetros podem ser:

a) Negação de uma imagem binária (matriz lógica de 0 e 1s)

figure; imshow (~imag)

b) Visualização de uma imagem de intensidade directamente a partir de um ficheiro.


Este tipo de imagem não define um mapa de cor mas o MatLab usa um mapa de cor
interno predefinido com 256 níveis de cinzento.

Figure; imshow(‘filename’);

É possível obter uma representação visual de uma matriz de dados sob a forma
de uma imagem de intensidade. Caso o valor dos dados esteja fora dos limites
suportados pelo mapa de cor interno é necessário fazer o escalonamento dos dados, caso
contrário os valores são truncados para os respectivos limites. A função imshow possui
a propriedade DisplayRange, que permite indicar os limites de um intervalo de dados a
usar para o escalonamento automático, na forma vector [Min,Max]. Os valores abaixo
de Min são representados a preto e acima de Max a branco.

10
c) A visualização de uma imagem indexada exige a indicação da matriz de pixels e do
mapa de cor que deve ser usado para obter a cor de cada pixel.

[img,mapa]=imread(‘filename’); % leitura da imagem e do mapa de cor


Figure; imshow(img,mapa); % visualizar imagem com mapa de cor original
Figure; imshow(img, jet(256)); % visualizar imagem com mapa de cor jet

2. Melhorar o contraste a imagem

2.1 Função imajust

Imadjust(img,vIntIn,vIntOut)

Img – imagem de intensidade


vIntIn – vector que contém os limites mínimo e máximo do intervalo de intensidades da
imagem a ajustar
vIntOut - vector que contém os limites mínimo e máximo do intervalo de intensidade
para o mapeamento na imagem de saída.

Quando se omitem os parâmetros vIntIn, vIntOut é realizado o ajuste de


intensidade de maneira que cerca de 1% dos pixels fiquem saturados acima e abaixo dos
limites do intervalo de intensidades da imagem de saída (Img1), resultando numa
imagem modificada que apresenta maior contraste.

Recorrendo à função stretchlim os limites do intervalo de intensidade da imagem


original (img) podem ser definidos automaticamente. Esta função calcula o histograma
da imagem a ajustar e retorna um vector com os limites mínimo e máximo do mesmo,
no intervalo [0,1]. É possível indicar uma taxa de saturação, através de um parâmetro
adicional, que pode ser um vector com dois elementos ou um escalar. Se o vector for
omitido ou estiver vazio equivale a especificar o intervalo [0,1], ou seja, o maior
intervalo possível.

limites= stretchlim(img) % obter limites do intervalo de intensidades


Img1= imadjust(img,limites, []); %ajustar intensidade
figure; imshow(Img1 ); % visualizar imagem ajustada

A função imadjust aceita outro parâmetro que especifica o factor de correcção


gamma. Este factor controla a forma como o mapeamento é realizado, podendo ter
valores de 0 a infinito. Por omissão assume o valor um, correspondendo ao mapeamento
linear. Se o valor for menor que 1 branqueia a imagem. Se tiver valores superiores a 1
escurece a imagem.

A função imadjust pode ser igualmente aplicada a um mapa de cor de uma


imagem indexada ou a uma imagem RGB.

2.2 Função Histeq

Um outro processo utilizado para o melhoramento da imagem consiste na


Equalização do histograma.

11
Na forma de invocação mais básica recebe a imagem original e retorna a
imagem processada. Adicionalmente pode retornar um vector com os valores obtidos no
processamento de todos os valores possíveis dos pixels da imagem de entrada. O gráfico
deste vector representa a curva de transformação aplicada durante a operação de
equalização.

Exemplo de leitura de uma imagem e equalização de uma imagem:

Img = imread('pout.tif'); figure, imshow(Img); figure, imhist(Img)


Img1 = histeq(Img); figure, imshow(I2); figure, imhist(Img1)

Fig1- Imagem original Fig2 – Histograma original Fig3- Imagem Equalizada Fig4 – Histograma Equalizado

A sintaxe da função aceita parâmetros adicionais para especificar o número de


intervalos considerados no histograma e o número de níveis discretos de tons de
cinzento presentes na imagem de saída. É ainda possível aplicar esta função a um mapa
de cor de uma imagem indexada.

A função adapthisteq realiza a equalização do histograma de forma adaptativa.


Divide a imagem em blocos e faz a sua equalização individualmente. O resultado final é
obtido pela combinação dos blocos adjacentes.

12
Anexo 2: MatLab – Exemplo 2: Conceitos Avançados

No exemplo 2 - Advanced Topics - são apresentados alguns conceitos avançados


de processamento de imagem. Neste exemplo são efectuadas operações que visam o pré
processamento ou melhoramento de imagem, ou seja, criar um fundo uniforme na
imagem e converter a imagem numa imagem binária. Posteriormente, são efectuadas
operações estatísticas sobre objectos existentes na imagem.

1. Ler e visualizar uma imagem

I = imread(‘filename');imshow(I)

Comandos referidos anteriormente no anexo 1

2. Estimar o valor dos Pixels do fundo da imagem

Para estimar o valor dos Pixels do fundo da imagem “rice.png” é utilizada uma
operação morfológica de abertura. A abertura morfológica é uma erosão seguida de uma
dilatação, usando o mesmo elemento estruturante (matriz binária), em MatLab é
representado pelo objecto Strel, para ambas as operações. A operação da abertura tem o
efeito de remover os objectos que não podem conter o elemento estruturante. Ou seja,
remove pequenos objectos da imagem, preservando o tamanho e a forma dos objectos
maiores.

background = imopen(I,strel('disk',15)); % valor do raio 15;


figure, imshow(background)

Conforme vimos, as operações morfológicas aplicam um elemento estruturante à


imagem de entrada e produzem uma imagem de saída do mesmo tamanho, mas com
alterações. É realizado o processamento de vizinhança. A vizinhança é definida em
tamanho e forma pelo elemento estruturante. O valor de cada pixel da imagem resultado
é comparado é baseado na comparação do pixel na imagem original e dos seus vizinhos.

3. Ver a aproximação do fundo da imagem como uma superfície

figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);


set(gca,'ydir','reverse');

Obs: Para remover os grãos de arroz da imagem, o elemento estruturante deve ter tamanho suficiente de
forma que não caiba inteiramente dentro do grão de arroz.

4. Criar uma imagem com um fundo homogéneo

Esta tarefa é realizada subtraindo a imagem original ao fundo anteriormente


criado através da aplicação do elemento estruturante. A indexação da escala dos
cinzentos sofre um deslocamento no sentido do preto, provocando o escurecimento da
imagem.

I2 = imsubtract(I,background);

13
5. Ajustar o contraste

I3 = imadjust(I2);

Comando referido anteriormente no anexo 1.

6. Transformar uma imagem numa imagem binária

A função graythresh calcula o valor de threshold usando o método de Otsu. A


função im2bw converte a imagem para binária, usando threshold global.

level = graythresh(I3);
bw = im2bw(I3,level);
figure, imshow(bw)

7. Determinar o nº de objectos da imagem

Após a imagem estar binária é possível contar o nº de objectos existentes


utilizando a função bwlabel.

[labeled,numObjects] = bwlabel(bw,4);

8. Examinar e visualizar a matriz de etiquetas em pixel region e convertê-la para


imagem RGB

A toolbox possui um conjunto de funções utilitárias e de aplicação geral, que nos


permitem obter informação sobre pixels, regiões de uma imagem ou sobre toda a
imagem.
A função impixelregion permite obter a cor de um ou mais pixels.

figure, imshow(labeled);
impixelregion

9. Converter a imagem para uma para imagem RGB

pseudo_color = label2rgb(labeled, @spring, 'c', 'shuffle');


imshow(pseudo_color);

10. Medir propriedades de objectos na imagem

A função regionprops obtém propriedades de regiões da imagem.

graindata = regionprops(labeled,'basic')

11. Operações estatísticas sobre objectos

A função max([graindata.Area]) devolve o tamanho do maior objecto.

14
A função biggrain = find([graindata.Area]==404) retorna a etiqueta do objecto
com maior comprimento.

A função mean([graindata.Area]) calcula a média dos valores dos pixels da


imagem.

A função hist([graindata.Area],20) desenha o histograma com 20 intervalos e


mostra a distribuição dos tamanhos do objecto.

15

Você também pode gostar