赞
踩
基于FPGA图像仿真系统的使用
1 FPGA图像仿真平台的介绍
图1 FPGA图像仿真系统
我们无法使用modelsim软件对一帧或者几帧图像直接读入到modelsim软件系统里面或者使用modelsim直接输出一帧或者几帧图像,但是modelsim软件可以通过verilog代码读取或写出txt文件。同时matlab又是强大的图像处理工具,这就给我们提供了思路。
如上图1所示,首先通过Matlab软件将图像转换为txt文档(img_txt.m),其次在图像仿真系统里面我们在VGA_CTL.v的VGA时序下使用imread.v读入txt文档(图像数据),在经过图像处理算法模块处理一帧或者连续几帧图像数据,通过imwrite.v将算法处理后的数据写入到txt文档里边。最后通过Matlab软件将txt文档还原成图像显示并保存(txt_img.m)。
这样做的好处是我们可以通过仿真看到图像处理各个环节的时序、数据变化以及最后算法处理后的图像显示,帮助我们快速找到算法中的bug。从而快速完成图像算法的仿真设计。
2 基于蓝色车牌定位的图像仿真系统的演示
要想识别车牌号码首先就要定位车牌。
2.1 颜色阈值化图像分割(颜色特征提取图像)
首先使用matlab软件找出目标颜色的ycbcr颜色空间下的Cb和Cr分量的阈值范围。
图2 截取特征颜色区域
第一步:截取需要分割的颜色如图2所示,并保存下来(为了更加准确识别可多截取几块)。
图3 查找特征颜色Cb和Cr范围
第二步:放入matlab软件里边查看Cb和Cr的阈值范围,如图三所示。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Project Name :y.m
% FPGA Open Source Studio
% Description: rgb to ycbcr
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
close all
clc
img = imread('test5.png');
ycbcr = rgb2ycbcr(img);
y=ycbcr(:,:,1);
cb=ycbcr(:,:,2);
cr=ycbcr(:,:,3);
2.2 图像仿真系统的使用
第一步:使用img_txt.m将图像转化为txt文档。
图 4 图片转换txt前
图5 图片转换为txt数据
图6 转换完成后图片3个通道 R、G、B显示
第二步:copy txt文档到仿真路径下。
图7 copy txt文件到仿真路径下
或者我们在matlab代码里边增加文件生成路径直接到仿真路径下。
第三步:建立仿真。
图8 编译代码保证无错
图9 仿真建立完成
第四步:仿真过程中数据和时序的查看。
图10 仿真波形
图11 仿真数据
第五步:copy 仿真后的结果文档到matlab路径下。
图12 仿真结果文件
第六步:查看算法处理后的图像,并做对比是否成功。
图13 车牌定位过程
图14 蓝色车牌定位成功
总结:利用图像仿真平台可以快速实现图像算法的仿真验证。颜色特征提取可针对颜色特征比较突出的图像进行提取,例如肤色、车牌、交通号牌等。
欢迎大家加入(知识星球)FPGA自习学院一起学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。