Esta es la tercera parte en esta serie de artículos relacionados a demos que realizan procesamiento clásico de imágenes en la plataforma Lattice ICE40 UltraPlus FPGA. El sistema que se va a usar es la plataforma Lattice ICE40 FPGA UltraPlus Breakout Board.
Este demo de procesamiento de imágnes utiliza la transformación de gaussian blur denominada test_gaussian_blur(image_input, image_output, img_proc), la siguiente funcionalidad sera usada en este demo de procesamiento de imagen.
void test_gaussian_blur(uint8_t *image_input, uint8_t *image_output, Image_processing *img_proc){
img_proc->send_params(image_width, image_height);
img_proc->send_image(image_input);
//gaussian blur kernel
uint8_t conv_kernel[9] = {(1)<<0, (1)<<1, (1)<<0, (1)<<1, ((1)<<2), (1)<<1, (1)<<0, (1)<<1, (1)<<0};
img_proc->send_convolution(conv_kernel, true, true, false);
printf("wait end busy\n");
img_proc->wait_end_busy();
printf("switch buffers\n");
img_proc->switch_buffers();
img_proc->read_image(image_output);
}
El siguiente Gaussian blur kernel es usado,
//gaussian blur kernel
uint8_t conv_kernel[9] = {(1)<<0, (1)<<1, (1)<<0, (1)<<1, ((1)<<2), (1)<<1, (1)<<0, (1)<<1, (1)<<0};
El siguiente demo de procesamiento de imagen utiliza la convolución usando el kernel de Gaussian blur previamente ilustrado, y este es el resultado,
Aqui esta un acercamiento de la imagen de salida luego de ser procesada por gnuplot,
Esta transformación es el resultado de la función img_proc->send_convolution(conv_kernel, true, true, false) parametros de la funcción.
En el próximo artículo estaremos describiendo más acerca del procesamiento de imágenes en esta plataforma y mas detalles, mantengase sintonizado. La plataforma de Lattice ICE40 FPGA UltraPlus Breakout Board es una excelente plataforma de bajo costo, pero suficientemente poderosa para utilizarse en aplicaciones de procesamiento de imágenes, y está disponible en DigiKey.
Que tenga un buen día.
Este artículo está disponible en inglés aquí,
This article is available in english here.


