<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Petryx :: &#187; Processamento de Imagem</title>
	<atom:link href="http://petryx.blogrs.com.br/category/processamento-de-imagem/feed/" rel="self" type="application/rss+xml" />
	<link>http://petryx.blogrs.com.br</link>
	<description>Linux,Java,Postgresql,Banco de dados, Processamento de imagens</description>
	<lastBuildDate>Fri, 30 Jul 2010 11:11:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Monografia</title>
		<link>http://petryx.blogrs.com.br/2008/08/27/monografia/</link>
		<comments>http://petryx.blogrs.com.br/2008/08/27/monografia/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 23:05:42 +0000</pubDate>
		<dc:creator>Marlon Petry</dc:creator>
				<category><![CDATA[Processamento de Imagem]]></category>
		<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Novidades]]></category>

		<guid isPermaLink="false">http://petryx.blogrs.com.br/?p=96</guid>
		<description><![CDATA[Pessoal resolvi publicar aqui minha monografia. Desenvolvi uma pesquisa sobre processamento de imagens aplicado à medição da macro-textura de pavimentos asfálticos, os resultados foram excelentes, utilizei a linguagem java. Na monografia são tratados os seguintes temas, processamento de imagem, transformada de fourier e analise dos resultados. Implementação de um sistema para avaliação da macrotextura de [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal resolvi publicar aqui minha monografia. Desenvolvi uma pesquisa sobre processamento de imagens aplicado à medição da macro-textura de pavimentos asfálticos, os resultados foram excelentes, utilizei a linguagem java.</p>
<p>Na monografia são tratados os seguintes temas, processamento de imagem, transformada de fourier e analise dos resultados.</p>
<p><a href='http://petryx.blogrs.com.br/wp-content/uploads/2008/08/petrymonografia.pdf'>Implementação de um sistema para avaliação da macrotextura de<br />
pavimentos utilizando Java</a></p>
]]></content:encoded>
			<wfw:commentRss>http://petryx.blogrs.com.br/2008/08/27/monografia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Melhorando imagens com java</title>
		<link>http://petryx.blogrs.com.br/2008/06/11/melhorando-imagens-com-java/</link>
		<comments>http://petryx.blogrs.com.br/2008/06/11/melhorando-imagens-com-java/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 15:35:52 +0000</pubDate>
		<dc:creator>Marlon Petry</dc:creator>
				<category><![CDATA[Processamento de Imagem]]></category>
		<category><![CDATA[imagej]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://petryx.blogrs.com.br/?p=40</guid>
		<description><![CDATA[Geralmente as imagens podem ter ser contraste melhorado realçando partes da imagem que antes não muito destacadas uma forma de melhorar é através da equalização do histograma. O histograma de uma imagem é demonstrado através de um gráfico de barras, onde é feito um somatório da ocorrência de cada pixel. Neste exemplo será utilizada uma [...]]]></description>
			<content:encoded><![CDATA[<p>Geralmente as imagens podem ter ser contraste melhorado realçando partes da imagem que antes não muito destacadas uma forma de melhorar é através da equalização do histograma.</p>
<p>O histograma de uma imagem é demonstrado através de um gráfico de barras, onde é feito um somatório da ocorrência de cada pixel. Neste exemplo será utilizada uma imagem na escala de cinza com um resolução de 16bits (0 a 65536).</p>
<p>Desenvolvi um algoritmo que cria e equaliza o histograma.</p>
<p><span id="more-40"></span></p>
<p>O algoritmo mostrado aqui foi desenvolvido em <strong>Java</strong> usando a <strong>API ImageJ</strong>.  E tem o seguinte príncipio de funcionamento:</p>
<ol>
<li>Lê a imagem;</li>
<li>Cria o histograma;</li>
<li>Cria a tabela <a title="LUT" href="http://pt.wikipedia.org/wiki/LUT" target="_blank">LUT (Look Up Table)</a>;</li>
<li>Encontra a escala que será o total do somátorio dividido pelos níveis de cinza;</li>
<li>Atribui valores a tabela que será lut(n) = H[n] * escala;</li>
<li>Aplica a tabela na imagem.</li>
</ol>
<p>O código mostrado é um <strong>plugin </strong>do <strong>imageJ</strong></p>
<pre>import ij.ImagePlus;
import ij.plugin.filter.PlugInFilter;
import ij.process.ImageConverter;
import ij.process.ImageProcessor;

public class HistogramEqualization_ implements PlugInFilter{
	int hist[];
	private ImagePlus imp;

	public int setup(String arg0, ImagePlus imp)
	{
		this.imp = imp;
		return DOES_16;
	}

	public void run(ImageProcessor ip)
	{
		hist = ip.getHistogram();
		equalizeHistogram(ip);
		imp.setProcessor("Equalized", ip);
		imp.updateAndDraw();
	}

	public void equalizeHistogram(ImageProcessor ip)
	{
		int max = 65535+1;
		float sumH[] = new float[max];
		float sum = 0;

		for(int i=0;i&lt; max;i++)
		{
			sum = sum + hist[i];
			sumH[i] = sum;
		}

		int lut[] = new int[max];
		double scale = max/sum;

		for(int i = 1;i&lt; max;i++)
			lut[i] = (int)Math.round(sumH[i] * scale);

		lut[max-1] = max;
		ip.applyTable(lut);
	}
}
</pre>
<p>Utilizando a famosa imagem do cameramam</p>
<p><a href="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/cameraman.jpg"><img class="alignnone size-medium wp-image-47" src="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/cameraman.jpg" alt="Cameram Original" width="300" height="300" /></a></p>
<p>Histograma Original</p>
<p><a href="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/histogramaoriginal.jpg"><img class="alignnone size-medium wp-image-43" src="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/histogramaoriginal.jpg" alt="Histograma Original Cameramam" width="300" height="240" /></a></p>
<p>Após a execução do algoritmo temos a nova imagem do cameramam com o histograma equalizado</p>
<p><a href="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/equalizedcamera.jpg"><img class="alignnone size-medium wp-image-42" src="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/equalizedcamera-300x300.jpg" alt="Cameramam equalizado" width="300" height="300" /></a></p>
<p>Histograma equalizado</p>
<p><a href="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/histogramaequalizado.jpg"><img class="alignnone size-medium wp-image-44" src="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/histogramaequalizado.jpg" alt="histograma equalizado cameraman" width="300" height="240" /></a></p>
<p>Este algoritmo equalizou o histograma melhorando o contraste mostrando os prédios no fundo da imagem que não apareciam muito bem. Existem outras formas de equalizar o histograma e melhorar a imagem que podem serem pesquisadas no <a href="http://www.submarino.com.br/books_productdetails.asp?Query=ProductPage&amp;ProdTypeId=1&amp;ProdId=1982048&amp;ST=SE&amp;franq=263686">Livro Digital Image Processing</a></p>
<p>Assine o feed e receba as matérias do blog por email.</p>
]]></content:encoded>
			<wfw:commentRss>http://petryx.blogrs.com.br/2008/06/11/melhorando-imagens-com-java/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Processamento de Imagem em Java</title>
		<link>http://petryx.blogrs.com.br/2008/06/05/processamento-de-imagem-em-java/</link>
		<comments>http://petryx.blogrs.com.br/2008/06/05/processamento-de-imagem-em-java/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 01:22:01 +0000</pubDate>
		<dc:creator>Marlon Petry</dc:creator>
				<category><![CDATA[Processamento de Imagem]]></category>
		<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://petryx.blogrs.com.br/?p=31</guid>
		<description><![CDATA[Uma das minhas áreas de pesquisas é a área de processamento de imagens. Desenvolvi na minha monografia em método para calcular a rugosidade de pavimentos asfálticos utilizando a linguagem java e o programa imageJ. Neste post mostrarei como usar o imageJ, um programa muito bom de utilizar. Possui alguma documentação explicando como desenvolver plugins e [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das minhas áreas de pesquisas é a área de processamento de imagens. </p>
<p>Desenvolvi na minha monografia em método para calcular a rugosidade de pavimentos asfálticos utilizando a linguagem java e o programa <a href="http://rsb.info.nih.gov/ij/">imageJ</a>.</p>
<p>Neste post mostrarei como usar o  <a href="http://rsb.info.nih.gov/ij/">imageJ</a>, um programa  muito bom de utilizar. Possui alguma documentação explicando como desenvolver plugins e macros para expandir suas funcionalidades.<br />
Este plugin transforma uma imagem preto e branca em imagem negativa, facilitando sua interpretação.<br />
Com exemplo será utilizada uma imagem de mamografia.<br />
<span id="more-31"></span></p>
<pre name="code" class="java">
import ij.IJ;
import ij.ImagePlus;
import ij.gui.NewImage;
import ij.plugin.filter.PlugInFilter;
import ij.process.Blitter;
import ij.process.ImageProcessor;

public class ImageNegativa_ implements PlugInFilter{

	@Override
	public int setup(String arg0, ImagePlus arg1) {
		IJ.showMessage("Marlon Luis Petry",
				"Converte imagem"
			);
		return DOES_8G;
	}

	@Override
	public void run(ImageProcessor ip) {

		int w = ip.getWidth();
		int h = ip.getHeight();

		ImagePlus ipNbit = NewImage.createRGBImage("Negative", w, h, 1, NewImage.FILL_BLACK);

		ImageProcessor inv_ip = ipNbit.getProcessor();
		inv_ip.copyBits(ip,0,0,Blitter.COPY);
		inv_ip.gamma(0.7);
		inv_ip.invert();

		ipNbit.show();
	}
}
</pre>
<p>Exemplo de utilização</p>
<p>As imagens mostradas aqui, são do livro do <a href="http://www.submarino.com.br/books_productdetails.asp?Query=ProductPage&#038;ProdTypeId=1&#038;ProdId=1981883&#038;ST=SE&#038;franq=263686">Digital Image Processing 2nd Edition (DIP/2e)</a>, e podem ser encontradas neste site <a href="http://www.imageprocessingplace.com/">http://www.imageprocessingplace.com/</a></p>
<p>Imagem Original</p>
<p><a href='http://petryx.blogrs.com.br/wp-content/uploads/2008/06/mamo.jpg'><img src="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/mamo-253x300.jpg" alt="Mamografia" width="253" height="300" class="alignnone size-medium wp-image-32" /></a></p>
<p>Imagem Negativa</p>
<p><a href='http://petryx.blogrs.com.br/wp-content/uploads/2008/06/mamoenhancement.jpg'><img src="http://petryx.blogrs.com.br/wp-content/uploads/2008/06/mamoenhancement-253x300.jpg" alt="Mamografia Negativa" width="253" height="300" class="alignnone size-medium wp-image-33" /></a></p>
<p>Esta técnica de processamento de realça as partes escuras da imagem, sendo mais fácil a análise por um especialista na área médica. </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://petryx.blogrs.com.br/2008/06/05/processamento-de-imagem-em-java/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
