Este how-to mostra como detectar bordas em imagem usando Java e Marvin.

Primeiramente, faça um static import da classe MarvinPluginCollection para ter acesso a seus métodos estáticos.

import static marvin.MarvinPluginCollection.*;

Há diferentes algorítmos para detecção de bordas, alguns fornecidos por Marvin. Primeiramente, a imagem de inicial é carregada e um outro objeto de imagem é criado para a saída.

MarvinImage image = MarvinImageIO.loadImage("./res/mickey_britto.jpg");
MarvinImage imageOut = new MarvinImage(image.getWidth(), image.getHeight());

input image:

Abordagens:

Prewitt:
prewitt(image, imageOut);
MarvinImageIO.saveImage(imageOut, "./res/mickey_britto_prewitt.jpg");




Sobel:
imageOut.clear(0xFF000000);
sobel(image, imageOut);
MarvinImageIO.saveImage(imageOut, "./res/mickey_britto_sobel.jpg");




Roberts:
imageOut.clear(0xFF000000);
roberts(image, imageOut);
MarvinImageIO.saveImage(imageOut, "./res/mickey_britto_roberts.jpg");




Black lines:

thresholding(...) and invertColors(...) podem ser usados para obter apenas as bordas numa única cor:

thresholding(imageOut, 40);
invertColors(imageOut);
MarvinImageIO.saveImage(imageOut, "./res/mickey_britto_black_lines.jpg");



Was this how-to helpful? Share it:

Do not you know how to setup Marvin? Read how to develop your First Application.