欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    FPGA二值图像边界提取算法实现.doc

    • 资源ID:3251600       资源大小:17.50KB        全文页数:2页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA二值图像边界提取算法实现.doc

    FPGA二值图像边界提取算法实现1 背景知识如图1 所示,图1 a为一幅简单的二值图像,经过边界提取后形成如图1 b 所示的图像,显示出了白色区域的轮廓。2 边界提取算法使用黑色提取,背景为白色,1表示白色,0表示黑色。我们使用3x3模板进行边界提取,所以当3x3九个点都是1的时候,输出为1,当九个点都是0的时候,输出为1,其他情况输出均为0。3 FPGA二值图像边界提取算法实现图2中我们使用串口传图传入的是二值图像。FPGA源码:/*Module name: boundary_extracTIon.vDescripTIon: binary image boundary extracTIon*/TImescale 1ns/1psmodule boundary_extraction( input clk, /pixel 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_data1;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(), .taps0x(line0), .taps1x(line1), .taps2x(line2) );/-/ Form an image matrix of three multiplied by three/-always (posedge clk or negedge rst_n) begin if(!rst_n) begin line0_data0 = 16b0;line0_data1 = 16b0;line0_data2 = 16b0;line1_data0 = 16b0;line1_data1 = 16b0;line1_data2 = 16b0;line2_data0 = 16b0;line2_data1 = 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; end else if(data_in_en) begin line0_data0 = line0;line0_data1 = line0_data0;line0_data2 = line0_data1;line1_data0 = line1;line1_data1 = line1_data0;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_data1 line0_data2/ line1_data0 line1_data1 line1_data2/ line2_data0 line2_data1 line2_data2/-always (posedge clk or negedge rst_n) begin if(!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 = 16h0000) (line1_data2 = 16h0000) (line2_data0 = 16h0000) (line2_data1 = 16h0000) (line2_data2 = 16h0000) data_out = 16hffff; 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 = 16hffff; else data_out = 16h0000;endendmodule4实验结果结果分析:图5和图7对比,比较粗的线都被查找出了边缘,只有最细的那条没有被提取出来,并且被加粗,原因是最细的线条只有三个像素当查找出边缘后显示为黑色,两边黑色连在一起所以线条就变粗了。图6和图8边缘查找没有问题。

    注意事项

    本文(FPGA二值图像边界提取算法实现.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开