二值图像 FPGA腐蚀算法解析.doc

上传人:白大夫 文档编号:3372170 上传时间:2019-08-19 格式:DOC 页数:6 大小:26.50KB
返回 下载 相关 举报
二值图像 FPGA腐蚀算法解析.doc_第1页
第1页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二值图像 FPGA腐蚀算法解析.doc》由会员分享,可在线阅读,更多相关《二值图像 FPGA腐蚀算法解析.doc(6页珍藏版)》请在三一文库上搜索。

1、二值图像 FPGA腐蚀算法解析1 背景知识二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、BW、单色图像表示二值图像。二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素不是0就是1,再无其他过渡的灰度值。腐蚀和膨胀是形态学处理的基础,许多形态学算法都是以这两种操作作为基础的。图1 a一幅大小为486x486的连线模板二值图像,图1bd分别使用11x11,15X15和45X45的模板进行腐蚀。我们从这个例子看到,腐蚀缩小或细化了二值图像中的物体。事实上,我们可以将腐蚀看成是形态学滤波操作,这种操作将小于模板的图像细节从

2、图像中滤除。2 腐蚀算法使用白色腐蚀:在二值图像的腐蚀算法过程中我们使用二值图像3x3图像矩阵,由图2可知,当九个格子中不全为0或者1时,经过腐蚀算法后九个格子的值最终都会变成1;如果九个全是1或者0时,那么最终的结果九个全是1或者0。3 FPGA腐蚀算法实现图3 二值图像腐蚀FPGA模块架构图3中我们使用串口传图,传入的是二值图像。FPGA源码:/*Module name: binary_image_etch.vDescripTIon: binary image etch*/TImescale 1ns/1psmodule binary_image_etch(input clk, /pixel

3、 clkinput rst_n,input hs_in,input vs_in,input 15:0 data_in,input data_in_en,output hs_out,output vs_out,output reg 15:0 data_out,output data_out_en);wire 15:0 line0;wire 15:0 line1;wire 15:0 line2;reg 15:0 line0_data0;reg 15:0 line0_data1;reg 15:0 line0_data2;reg 15:0 line1_data0;reg 15:0 line1_data

4、1;reg 15:0 line1_data2;reg 15:0 line2_data0;reg 15:0 line2_data1;reg 15:0 line2_data2;reg data_out_en0;reg data_out_en1;reg data_out_en2;reg hs_r0;reg hs_r1;reg hs_r2;reg vs_r0;reg vs_r1;reg vs_r2;wire18:0 result_data;line3x3 line3x3_inst(.clken(data_in_en),.clock(clk),.shifTIn(data_in),.shiftout(),

5、.taps0x(line0),.taps1x(line1),.taps2x(line2);/-/ Form an image matrix of three mulTIplied by three/-always (posedge clk or negedge rst_n) beginif(!rst_n) beginline0_data0 = 16b0;line0_data1 = 16b0;line0_data2 = 16b0;line1_data0 = 16b0;line1_data1 = 16b0;line1_data2 = 16b0;line2_data0 = 16b0;line2_da

6、ta1 = 16b0;line2_data2 = 16b0;data_out_en0 = 1b0;data_out_en1 = 1b0;data_out_en2 = 1b0;hs_r0 = 1b0;hs_r1 = 1b0;hs_r2 = 1b0;vs_r0 = 1b0;vs_r1 = 1b0;vs_r2 = 1b0;endelse if(data_in_en) beginline0_data0 = line0;line0_data1 = line0_data0;line0_data2 = line0_data1;line1_data0 = line1;line1_data1 = line1_d

7、ata0;line1_data2 = line1_data1;line2_data0 = line2;line2_data1 = line2_data0;line2_data2 = line2_data1;data_out_en0 = data_in_en;data_out_en1 = data_out_en0;data_out_en2 = data_out_en1;hs_r0 = hs_in;hs_r1 = hs_r0;hs_r2 = hs_r1;vs_r0 = vs_in;vs_r1 = vs_r0;vs_r2 = vs_r1;endend/-/ line0_data0 line0_dat

8、a1 line0_data2/ line1_data0 line1_data1 line1_data2/ line2_data0 line2_data1 line2_data2/-always (posedge clk or negedge rst_n) beginif(!rst_n)data_out = 16h0000;else if(data_out_en1)if(line0_data0 = 16h0000) (line0_data1 = 16h0000) (line0_data2 = 16h0000) (line1_data0 = 16h0000) (line1_data1 = 16h0

9、000) (line1_data2 = 16h0000) (line2_data0 = 16h0000) (line2_data1 = 16h0000) (line2_data2 = 16h0000)data_out = line1_data1;else if(line0_data0 = 16hffff) (line0_data1 = 16hffff) (line0_data2 = 16hffff) (line1_data0 = 16hffff) (line1_data1 = 16hffff) (line1_data2 = 16hffff) (line2_data0 = 16hffff) (line2_data1 = 16hffff) (line2_data2 = 16hffff)data_out = line1_data1;elsedata_out = 16hffff;endendmodule4实验结果结果分析: 图5和图6进行对比,图5中最细的图案在图6中已经消失,比较粗的线条也相对变细,实验成功。如果大家想进行更大力度的腐蚀可以使用更大的模板。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1