一设计功能
通过友善串口助手将198X198像素的十字光标图片转化为198X198的二进制数据后,传送给FPGA后储存到40K的RAM中用VGA来叠加显示,之后再加一个图像的半透明显示。
二设计输入
(一)verilog实现 关键点:若是十字光标像素为255,则是白色背景(由于8位位宽的rgb全为1表示白色,全为零表示黑色)否则为光标图像。本次设计的模块总共三个,顶层模块,串口接收模块,VGA模块,当然咯还调用了两个IP核,PLL和RAM。图像叠加显示系统框图如下:
module vga_ram( reg [15:0] addrb,addra; parameter MAX_value = 16'd39203; reg [8:0]x; //行移动计数器最大439 reg dec_x;//行偏移量计数器减一切换标志信号 reg [9:0]cnt_h; parameter h_max =10'd799; //行计数器 //vsync场同步信号
//the flag of one_s_flag
// end end //cnt_h >=143+x读出地址相对于读出的数据提前一个像素点 always @(posedge clks or negedge rst_n) begin
|
(二)MATLAB处理代码
作用:将图片转换198X198的数据矩阵,然后用串口助手发送给FPGA。
clc; |
(三)MATLAB常见边缘检测的算法
clc figure(3); wq = 1; |
三工程成果展示:
十字光标的叠加显示如下图:
皮卡丘半透明实验显示如下图:
MATLAB常见边缘检测的算法的实验结果: