Processamento Digital de Imagens Radiográficas de Juntas Soldadas e Tubulações Daniel Felipe Warkentin, Dionísio Benedito, Devanir Pereira de Carvalho, Luís Alberto Lucas Universidade Tecnológica Federal do Paraná (UTFPR) Curitiba PR Brasil danielfw15@hotmail.com devanobrown@hotmail.com dionitro2@hotmail.com RESUMO Com o objetivo de estudar o processamento digital de imagens, nesse artigo serão estudadas três imagens radiográficas de juntas soldadas de tubulações. Serão feitas análises de limiarização, de contraste e de tons de cores para chegar a um objetivo se possível: identificar e separar as falhas encontradas nas juntas soldadas. O software usado para a computação e processamento das imagens será o Matlab. As conclusões positivas ou negativas serão descritas no artigo. Palavras-chave: imagens; processamento; digital; juntas; tubulações; falhas. 1. INTRODUÇÃO As imagens podem ser utilizadas para inúmeras aplicações práticas. São usadas em praticamente qualquer lugar. Para documentar fatos, mapear terras, analisar superfícies diversas, entre tantas outras aplicações. Quando são digitais, são muito mais úteis para análise de dados, baseados em imagens. Esse é o objetivo do processamento digital de imagens. Esse processamento pode ser usado para a identificação de falhas em uma solda de tubulação de gás ou petróleo. Os pixeis da imagem podem ser computados de tal forma, até que as falhas fiquem bem evidentes e possam ser identificadas. Como a inspeção de imagens de raio-x a olho nu é uma tarefa cansativa e sujeita a falhas, é necessário que essas imagens sejam processadas de uma maneira digital. Primeiramente, para que as falhas possam ser identificadas mais facilmente. Para que isso possa ocorrer, é preciso separá-las do resto da figura, utilizando alguma técnica que as destaque bem. Segundo, para que a visualização
da figura melhore. Muitas vezes as imagens são escuras, aparentam possuir uma resolução ruim e observa-se a impossibilidade de observar a falha. [Schneider, 2005] Essas técnicas de processamento são úteis, quando são tiradas fotos raio-x das juntas de tubulações e canos de gás e petróleo. Quando se analisa a imagem original, é impossível determinar com certeza, onde estão as falhas da solda nas juntas. No entanto, após a edição de uma forma digital, as características ficam mais granuladas e definidas, e o contraste melhora consideravelmente. Nesse artigo, serão observados alguns testes feitos em 3 imagens, usando funções do Matlab, que trabalham com as matrizes de pixeis da figura. [Schneider, 2005] 2. IMAGENS ORIGINAIS As três imagens que foram usadas para os testes são as seguintes: Figura 2.1 CP1-1ASeifert-KV_mA_3.0min.tiff Figura 2.2 CP5-2B_Seifert-_kV_mA_3.5min.tiff
Figura 2.3 CP5-1A_Seifert-_kV_mA_3.5min.tiff 3. CÓDIGOS UTILIZADOS PARA PROCESSAR AS IMAGENS Os códigos utilizados para processar e computar cada uma das figuras do capítulo anterior são os seguintes: Para a figura 2.1: function I2 = implementacao_2(i1) I = imread (I1); figure, imshow(i) se = strel('disk',12); a = imbothat(i,se); % figure, imshow(a) b = imsubtract(imadd(i,imtophat(i,se)), imbothat(i,se)); figure, imtool(b) b = rgb2gray(b); imwrite(b,'temp.tif'); I1 = imread (I1); I2 = imread ('temp.tif'); I3 = I2; i1 = find(i2>=25); i2 = find(i2<25); I3(i1)=255; I3(i2)=0; figure, imshow(i3)
Para a figura 2.2: function I2 = implementacao(i1) I = imread (I1); figure, imshow(i) se = strel('disk',9); a = imbothat(i,se); % figure, imshow(a) b = imsubtract(imadd(i,imtophat(i,se)), imbothat(i,se)); figure, imtool(b) b = rgb2gray(b); imwrite(b,'temp.tif'); I1 = imread (I1); I2 = imread ('temp.tif'); I3 = I2; i1 = find(i2>253); i2 = find(i2<25); i3 = find((i2>25)&(i2<253)); I3(i1)=255; I3(i2)=0; I3(i3)=127; figure, imshow(i3) Para a figura 2.3: function I2 = implementacao_3(i1) I = imread (I1); figure, imshow(i) se = strel('disk',9); a = imbothat(i,se); % figure, imshow(a) b = imsubtract(imadd(i,imtophat(i,se)), imbothat(i,se)); figure, imtool(b) b = rgb2gray(b); imwrite(b,'temp.tif'); I1 = imread (I1); I2 = imread ('temp.tif'); I3 = I2; i1 = find(i2>=254); i2 = find(i2<254); I3(i1)=255;
I3(i2)=0; figure, imshow(i3) Foram usadas algumas técnicas importantes e principais no código: a melhora do contraste e da resolução (granulação) da imagem, e a técnica da limiarização, que por sua vez, transforma todos os pixeis acima ou abaixo de um limiar numa cor específica. Na função bottomhat, usada para melhorar o contraste e a resolução da imagem, quanto menor a variável disk, maiores são os grãos, ou seja, os pixeis que estão próximos se agrupam numa mesma cor. Depois de ser observada a imagem resultante da função bottomhat, é possível verificar qual o melhor limiar que deve ser usado para separar a falha do restante da imagem. Para fazer isso, o mouse deve ser passado sobre a falha, e o limiar poderá ser identificado. Em seguida todos os pixeis acima do limiar serão transformados em branco, por exemplo, e todos os pixeis abaixo, em preto. No caso de uma imagem com duas falhas (escura e clara), serão usados dois limiares. 4. IMAGENS RESULTANTES E RESULTADOS DOS TESTES A seguir estão listados os testes mais satisfatórios com as três imagens: Figura 4.1 Imagem do Código, Imagem Original, Bottomhat e Resultante. Imagem processada: CP1-1ASeifert-KV_mA_3.0min.tiff Observa-se na figura 4.1 que o resultado foi satisfatório. Pois foi possível isolar com a cor preta, apenas a região da falha. Nos teste feitos, não foi realizável separar a região inteira da falha, pois esta possui uma cor parecida com outras regiões da imagem. Um ponto positivo foi que as outras regiões da figura, foram totalmente eliminadas na figura resultante. Assim, a região importante é fácil de ser percebida.
Figura 4.2 Código, Bottomhat, Original (em cima), Resultante (em baixo). Imagem processada: CP5-2B_Seifert-_kV_mA_3.5min.tiff Na figura 4.2, por sua vez o resultado não foi completamente satisfatório. Foi exequível obter as regiões de falhas, transformando as em cor branca e preta, deixando o cinza como a região neutra. Mas, vários pixeis da imagem foram transformados em preto, mesmo não fazendo parte da falha. Isso ocorreu devido ao mesmo limiar de cor encontrado nessas regiões. Figura 4.3 - Código, Bottomhat, Original (em cima), Resultante (em baixo). Imagem processada: O resultado da figura 4.3 foi o mais satisfatório. Foi possível separar apenas a falha, transformando-a em cor branca. O restante da imagem, que está na cor preta, é a região neutra ou
livre de falhas. 6. CONCLUSÃO Apesar do tratamento da imagem proporcionar uma considerável melhora na visualização, em algumas figuras ainda assim não é possível separar absolutamente a falha do resto da imagem. Um dos motivos disso, é que o tom de cor do pixel da falha é igual a outros pixeis espalhados na imagem (os quais não fazem parte da falha). Um outro ponto negativo é a automação do código. Existem algumas tarefas a serem executadas para iniciar o tratamento da imagem que necessitam da intervenção humana no código. Não foi possível desenvolver um código de Matlab que se adaptasse a cada figura nova usada, pois o limiar de cada figura e o tipo de falha (clara, escura, clara e escura) mudam completamente. Foi necessária a intervenção na hora de cortar a imagem, pois cada figura estava centralizada de uma forma diferente, e as regiões de interesse variavam. O corte foi necessário para reduzir o espaço da imagem ocupado na memória e para que o processamento ficasse mais rápido. Para filtros de contraste, foram testados várias funções de Matlab diferentes, tais como moda, mediana e media, os quais não surtiram o efeito esperado. O melhor tratamento de contraste foi obtido pelo filtro bottomhat, que possibilita simular uma melhor granulação da imagem, e também destacar as falhas. 7. REFERÊNCIAS SCHNEIDER. Guilherme Alceu. Segmentação e Extração das Características de Defeitos em Imagens Radiográficas de Juntas Soldadas e Tubulações. 2005. 154 f. Dissertação (Mestre em Ciências) Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial, Centro Federal de Educação Tecnológica do Paraná, Curitiba, 2005. BECKER. Alex Jenaro; SILVA. Daiane Medianeira Ilha da; DIAS. Francisco Helmuth Soares; PINHEIRO. Lucélia Kowalski. Noções Básicas de Programação em Matlab. 2010. GAMBA. Humberto; BORBA. Gustavo. Introdução ao Matlab. 2012.