Roadmap Processamento de Imagens  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Bom, manipulação de imagens é um tema recorrente aqui, então resolvi postar esse guia para aqueles que estão entrando nesse mundo agora, e querem usar Java.

Para manipular imagens com eficiência

Using Rasters For Image Processing

- Part 1 - http://javaboutique.internet.com/tutorials/rasters/
- Part 2 - http://javaboutique.internet.com/tutorials/rasters2/

Java Foundation Classes in a Nutshell:

- BufferedImages - http://docstore.mik.ua/orelly/java-ent/jfc/ch04_10.htm
- Blending Colors With Alpha Composite: http://docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm
- Color Spaces: http://docstore.mik.ua/orelly/java-ent/jfc/ch04_12.htm


Jerry's Java Image Processing Pages

- Managed Images and Performance: http://www.jhlabs.com/ip/managed_images.html
- Image Filters (contém diversos filtros implementados, com fontes): http://www.jhlabs.com/ip/filters/index.html


Para desenhar no Java 2D

Ponto V - Java 2D

- Conhecendo o JFrame: http://www.pontov.com.br/site/index.php/java/47-javageral/92-conhecendo-o-jframe
- Pintando no Java 2D: http://www.pontov.com.br/site/index.php/java/48-java2d/97-pintando-no-java-2d
- Uma visão rápida sobre o Java 2D: http://www.pontov.com.br/site/index.php/java/48-java2d/93-uma-visao-rapida-sobre-o-java-2d
- O fantasma do Pacman: http://www.pontov.com.br/site/index.php/java/48-java2d/107-o-fantasma-do-pacman
- Trabalhando com Imagens: http://www.pontov.com.br/site/index.php/java/48-java2d/111-trabalhando-com-imagens


Painting in AWT and Swing - http://java.sun.com/products/jfc/tsc/articles/painting/#swing
Space Invaders - An Accelerated Tutorial - http://www.cokeandcode.com/info/tut2d.html
Killer Game Programming in Java: http://fivedots.coe.psu.ac.th/~ad/jg/
Lesson: Performing Custom Painting - http://docs.oracle.com/javase/tutorial/uiswing/painting/
Trail: 2D Graphics: Table of Contents - http://docs.oracle.com/javase/tutorial/2d/TOC.html

Sobre performance e ergonomia da JVM

Visual VM: http://visualvm.java.net/docindex.html
Introduction to Profiling Java Applications: http://netbeans.org/kb/60/java/profiler-intro.html

Brian Goetz Publications:

- Urban Performance Legends: http://www-106.ibm.com/developerworks/java/library/j-jtp04223.html
- Urban performance legends revisited: slow object allocation: http://www-128.ibm.com/developerworks/java/library/j-jtp09275.html
- Is that your final answer?: http://www-106.ibm.com/developerworks/java/library/j-jtp1029.html
- A brief history of garbage collection: http://www-106.ibm.com/developerworks/java/library/j-jtp10283/
- Garbage collection and performance: http://www-106.ibm.com/developerworks/java/library/j-jtp01274.html
- Garbage collection in the 1.4.1 JVM: http://www-106.ibm.com/developerworks/java/library/j-jtp11253/
- Dynamic compilation and performance measurement: http://www-106.ibm.com/developerworks/library/j-jtp12214/
- Anatomy of a flawed microbenchmark: http://www.ibm.com/developerworks/java/library/j-jtp02225.html

Tunning Garbage Collection With JVM 5: http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html


Se alguém souber de mais links, sinta-se à vontade para complementar esse post.

This message was edited 1 time. Last update was at 23/02/2012 16:50:27


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
jpcasati
JavaGuru
[Avatar]

Membro desde: 01/05/2006 03:27:42
Mensagens: 208
Localização: São Carlos-SP
Offline

Muuuito bom! Valeu! Trabalho com imagens mas não uso java, vou começar a usar agora.


http://br.linkedin.com/in/jpcasati

Linguagens: Java e PHP.
Interesses: Criptografia, Web 2.0, Sistemas de Informação, Processamento Digital de Imagens.
[Email] [WWW] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

jpcasati wrote:Muuuito bom! Valeu! Trabalho com imagens mas não uso java, vou começar a usar agora.


Você usa o que? C++ com opencv?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline

Muito bom Vinicius,

vou contribuir com alguns links de assuntos correlatos que andei brincando (mas faz algum tempo):

API 3D
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html

http://www.java3d.org/
OpenGL - http://nis-lab.is.s.u-tokyo.ac.jp/~robin/jGL/
jCUDA - http://www.hoopoe-cloud.com/Solutions/jCUDA/Default.aspx
Lg3d - http://java.net/projects/lg3d
Batik SVG Toolkit - http://xmlgraphics.apache.org/batik/

Outros resources
http://www.opengl.org/
http://www.mesa3d.org/
http://developer.nvidia.com/what-cuda

abraços

This message was edited 1 time. Last update was at 16/06/2011 06:58:32


Sun Certified Java Programmer 5.0
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Eu prefiro, para OpenGL, esse binding aqui: http://lwjgl.org/

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
GraveDigger
JavaEvangelist
[Avatar]

Membro desde: 07/07/2005 13:47:12
Mensagens: 354
Localização: Aracajú
Offline

Bom Dia Vini,

Boas dicas.

Pretendo começar a estudar manipulação de imagem e vídeo, em especial a parte de reconhecimento de padrões.

Estava pensando em iniciar pelo OpenCV mas agora fiquei na dúvida, você acredita que os recursos citados nesse post atendam essa área que pretendo me dedicar ou OpenCV ainda é o mais indicado para esse caso?

Ressaltando que meu objetivo é a interpretação dos dados de imagem e vídeos já existentes, não geração dos mesmos.

Abs

SCWCD
SCJP

Pedro Henrique Lobato Sena

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Use o opencv, especialmente para vídeo.
É mais rápido, mais completo e mais fácil de usar.

O java é legal só se vc quiser estudar como esses algoritmos funcionam (implementar seu próprio algorítmo de dilatação, por exemplo).

This message was edited 1 time. Last update was at 17/06/2011 08:13:42


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
GraveDigger
JavaEvangelist
[Avatar]

Membro desde: 07/07/2005 13:47:12
Mensagens: 354
Localização: Aracajú
Offline

Entendi.

Farei isso mesmo então, já tenho até o livro aqui

Obrigado

SCWCD
SCJP

Pedro Henrique Lobato Sena

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Se quiser usar o C++, dê uma olhada na nova API do Opencv 2.0.

O legal é que vc pode estudar pelo livro, entender os conceitos, e depois só adaptar a sintaxe.

A lib em C++ é bem mais fácil, orientada a objetos e tão rápida quanto.
http://opencv.willowgarage.com/documentation/cpp/

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
GraveDigger
JavaEvangelist
[Avatar]

Membro desde: 07/07/2005 13:47:12
Mensagens: 354
Localização: Aracajú
Offline

Sim, vou partir pro C++ mesmo.

Aproveito e já estudo a linguagem que é algo que estava querendo fazer há algum tempo já.

Valeu

SCWCD
SCJP

Pedro Henrique Lobato Sena

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Bom, aí vc também pode olhar meu Roadmap C++:
http://www.pontov.com.br/site/index.php/cpp/46-conceitos-basicos/88-roadmap-c

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
GraveDigger
JavaEvangelist
[Avatar]

Membro desde: 07/07/2005 13:47:12
Mensagens: 354
Localização: Aracajú
Offline

Oi Vini,

Aproveitando o embalo mas sem desviar muito do tópico.

Qual dos livros citados no roadmap você indica pra quem já programa em outras linguagens(exceto C) ?

Não quero pegar um livro muito básico mas também fico com receio de pular conceitos importantes.

Programo em java e algumas outras linguagens faz um bom tempo já, queria um livro que me permitisse partir desse ponto.

Abs

SCWCD
SCJP

Pedro Henrique Lobato Sena

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

GraveDigger wrote:Qual dos livros citados no roadmap você indica pra quem já programa em outras linguagens(exceto C) ?


Um desses aqui:
Programação Orientada a Objetos em C++, do prof. André Duarte Bueno (UFSC): Ótimo material, em português e disponível para download gratuitamente aqui.
Programming: Principles and Practice Using C++: Livro básico da linguagem C++, escrito pelo próprio Bjarne Stroustrup, criador da linguagem.
Accelerated C++: Practical Programming by Example, do Andrew Koenig: Para quem não sabe C, e nem quer saber, mas quer aprender C++;

Eles são complementares. Ou seja, obtendo um, não precisa comprar o outro.
O Accelerated C++ é o mais "direto" deles. Também é recomendado pelo Stroustrup.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
GraveDigger
JavaEvangelist
[Avatar]

Membro desde: 07/07/2005 13:47:12
Mensagens: 354
Localização: Aracajú
Offline

Opa,

Obrigado novamente pela dica, vou partir pra esse Accelerated C++.

Abs

SCWCD
SCJP

Pedro Henrique Lobato Sena

juliocbq
GUJ Expert
[Avatar]

Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline

GraveDigger wrote:Opa,

Obrigado novamente pela dica, vou partir pra esse Accelerated C++.

Abs


É interessante você usar uma lingiuagem simples como java ou pascal para começar a implementar esses algoritmos(para aprender mesmo). Quando precisar criar uma ferramenta relacionada, partir para o c++ para conseguir um bom tempo de resposta deles.

www.citrox.com.br
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team