for more visit: www.fpgalover.com
If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.
Requerimientos:
Practica 1 a 6.
Esta practica es la base del lab 3B, asi que debe completarla en su totalidad para realizar a cabalidad ese laboratorio.
En esta practica, usted implementara el conocimiento aprendido en las practicas anteriores para hacer una acercamiento a las bases de procesamiento digital de imagenes y de video. La DE2-115 tiene un decodificador de video(ADV7180) con conector RCA que puede ser usado para conectar cualquier dispositivo que tenga una salida de video del tipo conector RCA. Usted debe conseguir una camara digital que tenga este tipo de salida para esta practica en la cual hara un procesamiento digital basico de imagenes que sera base para el laboratorio 3B de este curso, tambien podria usar una fuente como un DVD-Player, u otro elemento que tenga salida de video RCA.
En la siguiente imagen, usted puede recordar los conceptos aprendidos en clase sobre como procesar una imagen usando Kernels, conceptos que usted ya ha visto en clase. Generalmente en procesamiento de imagenes, se usan kernerls de 3x3 pixeles, llamados tambien vecindades, con estas pequeñas regiones se pueden aplicar filtros digitales sobre la imagen para eliminar informacion inecesaria, y de esta manera hacer facil el procesamiento de lo que se quiere identificar en la imagen.
Para extraer estos kernels en hardware, se deben usar lineas de delay(Usando Generate), que retengan al menos 3 lineas de sincronizcacion horizontal en video, las cuales haran posible extraer sin problema los pixeles que conforman una vecidad de 3x3, de 4x4, de 5x5 o asi sucesivamente.
En esta practica, usted solo debera agregar la logica necesaria al modulo(Plantilla) de "Image Processing", el cual debera tomar cada Kernel de la imagen y hacer un proceso aritmetico para:
SW[4:0] == 5'b00000 ==> Visualizar Componente Roja de la Imagen.
SW[4:0] == 5'b00001 ==> Visualizar Componente Green de la Imagen.
SW[4:0] == 5'b00010 ==> Visualizar Componente Blue de la Imagen.
SW[4:0] == 5'b00011 ==> Visualizar Componente Escala de Grises basado en componente R
SW[4:0] == 5'b00100 ==> Visualizar Componente Escala de Grises basado en componente G
SW[4:0] == 5'b00101 ==> Visualizar Componente Escala de Grises basado en componente B
SW[4:0] == 5'b00110 ==> Visualizar Componente Escala de Grises por Luminosidad.
SW[4:0] == 5'b00111 ==> Visualizar el negativo de la imagen
SW[4:0] == 5'b01000 ==> Aplicar efecto Sepia a la imagen.
SW[4:0] == 5'b01001 ==> Aplicar Sobel a la imagen(Bordes).
SW[4:0] == 5'b01010 ==> Aplicar filtro de color basado en el siguiente video(El procesamiento ellos lo hacen en otro lugar), para extraer rojos y mostrar el resto en escala de grises.
SW[4:0] == 5'b01011 ==> Aplicar filtro de color basado en el siguiente video(El procesamiento ellos lo hacen en otro lugar), para extraer verdes y mostrar el resto en escala de grises.
SW[4:0] == 5'b01110 ==> Aplicar filtro de color basado en el siguiente video(El procesamiento ellos lo hacen en otro lugar), para extraer verdes y mostrar el resto en escala de grises.
SW[4:0] == 5'b01111 ==> Blanco y negro de la imagen.
SW[4:0] == 5'b10000 ==> Segmentar la Piel de la imagen, basado en la teoria de este Reporte y en lo que planea el Prof. Bruce Land.
En el siguiente link, hay un codigo en C que yo escribi hace 3 años, para las operaciones, de negativo, sepia, sobel, y escala de grises. Usted puede basarse en el para hacerlo, pero recuerde que debe adaptarlo a HW(Verilog).
Para hacer los calculos matematicos, use los cores de multiplicacion("LPM_MULT"), suma("LPM_ADD"), resta("LPM_SUB") y division("LPM_DIV") de Altera.
for more visit: www.fpgalover.com
If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.