完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`基于FPGA的图像拉普拉斯锐化处理 AT7_Xilinx开发板(USB3.0+LVDS)资料共享 腾讯链接:https://share.weiyun.com/5GQyKKc 百度网盘链接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw 提取码:qr0t 如图所示,这是整个视频采集系统的原理框图。上电初始,FPGA需要通过IIC接口对CMOS Sensor进行寄存器初始化配置。这些初始化的基本参数,即初始化地址对应的初始化数据都存储在一个预先配置好的FPGA片内ROM中。在初始化配置完成后,CMOS Sensor就能够持续输出标准RGB的视频数据流,FPGA通过对其同步信号,如时钟、行频和场频进行检测,从而从数据总线上实时的采集图像数据。MT9V034摄像头默认初始化数据就能输出正常的视频流,因此FPGA中实际上未作任何IIC初始化配置。 在FPGA内部,采集到的视频数据先通过一个FIFO,将原本25MHz频率下同步的数据流转换到50MHz的频率下。接着将这个数据再送入写DDR3缓存的异步FIFO中,这个FIFO中的数据一旦达到一定数量,就会写入DDR3中。与此同时,读取DDR3中缓存的图像数据,缓存到FIFO中,并最终送往LCD驱动模块进行显示。LCD驱动模块不断的发出读图像数据的请求,并驱动液晶显示器显示视频图像。 本实例除了前面提到对原始图像做DDR3缓存和显示,还会在原始图像缓存到DDR3之前,另外做图像的多行缓存和拉普拉斯锐化处理,获得新的锐化后的图像流,这个图像流写入到DDR3中。根据LCD显示模块的请求,读取DDR3中处理后的图像进行显示。最终在VGA液晶显示器上,可以看到左侧图像是原始的图像,右侧图像是经过锐化处理后的图像。 在图像增强中,平滑是为了消除图像中噪声的干扰,或者降低对比度。与之相反,有时为了强调图像的边缘和细节,需要对图像进行锐化,提高对比度。 拉普拉斯锐化图像是根据图像某个像素的周围像素到此像素的突变,也就是说它的依据是图像像素的变化程度。我们知道,一个函数的一阶微分描述了函数图像是朝哪里变化的,即增长或者降低;而二阶微分描述的则是图像变化的速度,急剧增长下降还是平缓的增长下降。那么据此我们可以猜测出依据二阶微分能够找到图像的色素的过渡程度,例如白色到黑色的过渡就是比较急剧的。 或者用官方点的话说:当邻域中心像素灰度低于它所在的领域内其它像素的平均灰度时,此中心像素的灰度应被进一步降低,当邻域中心像素灰度高于它所在的邻域内其它像素的平均灰度时,此中心像素的灰度应被进一步提高,以此实现图像的锐化处理。 2.2拉普拉斯(laplace)算子最常用的无方向性的二阶差分算子,其模板有3*3、5*5和7*7等多种形式。。 例如,以3*3算子为例,1~8像素是(x,y)点周围邻近的8个像素点。可以使用右侧的2种模板对(x,y)以及周边4或8个像素点进行运算,替代原来的(x,y)点。
当然了,根据中心点的权重程度,也可以使用如下2中模板来实现图像锐化。 基于第一种拉普拉斯锐化处理,我们的Matlab代码如下:
clear clc I1=imread('.lena.jpg'); I=im2double(I1); [m,n,c]=size(I); A=zeros(m,n,c); %for R for i=2:m-1 for j=2:n-1 A(i,j,1)=I(i+1,j,1)+I(i-1,j,1)+I(i,j+1,1)+I(i,j-1,1)-4*I(i,j,1); end end %for G for i=2:m-1 for j=2:n-1 A(i,j,2)=I(i+1,j,2)+I(i-1,j,2)+I(i,j+1,2)+I(i,j-1,2)-4*I(i,j,2); end end %for B for i=2:m-1 for j=2:n-1 A(i,j,3)=I(i+1,j,3)+I(i-1,j,3)+I(i,j+1,3)+I(i,j-1,3)-4*I(i,j,3); end end B=I-A; %output imwrite(B,'lena.tif','tif'); imshow('.lena.jpg');title('origin image');figure imshow('lena.tif');title('image after laplace transform') 滤波效果如下。 Matlab源码、Lena.jpg原图和比对图存放在at7_img_ex02matlab文件夹下。 3基于FPGA的图像平滑处理 工程文件夹at7_img_ex02zstar.srcssources_1 ew下的laplace_transform.v模块实现了拉普拉斯锐化处理。该模块功能框图如下,使用2个FIFO,分别缓存前后行,即进入图像处理的3组数据流分别是第n-1行、第n行和第n+1行的图像,控制输入数据流和2个FIFO缓存的图像在同一个位置、寄存器对前后2个像素的图像值进行缓存,这样便可实现中心像素点以及前后列、上下行之间数据的同步处理了。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
879个成员聚集在这个小组
加入小组4487 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2601 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4281 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5228 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5225 浏览 0 评论
1913浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 18:32 , Processed in 0.390944 second(s), Total 40, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号