Lattice ICE40 UltraPlus FPGA (Proc de Imágenes Demo Detección de Esquinas (Convolución) Parte 4)

Esta es la cuarta parte en esta serie de 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.

image

Por favor refieraze a los artículos anteriores, parte 1, parte 2, parte 3 de esta serie de demo de procesamiento de imágenes. La siguiente funcción se usa en este demo,

//use gradient kernels
void test_simple_edge_detection(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);

   //top gradient
   {
      uint8_t conv_kernel[9] = {(1)<<3, (1)<<4, (1)<<3, (0)<<4, ((0)<<4), (0)<<4,  (-1)<<3, (-1)<<4, (-1)<<3};
      img_proc->send_convolution(conv_kernel, true, true, false);
   }
   img_proc->wait_end_busy();

   //bottom gradient
   {
      uint8_t conv_kernel[9] = {(-1)<<3, (-1)<<4, (-1)<<3, (0)<<4, ((0)<<4), (0)<<4,  (1)<<3, (1)<<4, (1)<<3};
      img_proc->send_convolution(conv_kernel, true, true, true);
   }
   img_proc->wait_end_busy();

   //left gradient
   {
      uint8_t conv_kernel[9] = {(1)<<3, (0)<<4, (-1)<<3, (1)<<4, ((0)<<4), (-1)<<4,  (1)<<3, (0)<<4, (-1)<<3};
      img_proc->send_convolution(conv_kernel, true, true, true);
   }
   img_proc->wait_end_busy();

   //right gradient
   {
      uint8_t conv_kernel[9] = {(-1)<<3, (0)<<4, (1)<<3, (-1)<<4, ((0)<<4), (1)<<4,  (-1)<<3, (0)<<4, (1)<<3};
      img_proc->send_convolution(conv_kernel, true, true, true);
   }
   img_proc->wait_end_busy();

   img_proc->switch_buffers();

   img_proc->read_image(image_output);
}

y el resultado de este demo de procesamiento de imagen es el siguiente,

Aquí está un acercamiento a la imagen de salida del algoritmo de detección de esquinas de la imagen,

Se ve claramente como se definen los entornos de la imagen en este demo.

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.

1 Like