当前位置: 首页 > news >正文

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

matlab2022a

3.部分核心程序

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/07/28 01:51:45
// Design Name: 
// Module Name: test_image
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module test_image;
reg i_clk;reg i_rst;reg [7:0] Buffer1 [0:100000];
reg [7:0] Buffer2 [0:100000];
reg [7:0] II1;
reg [7:0] II2;
wire [7:0]o_cf;
wire [7:0]o_cfbw;
integer fids1,fids2,idx=0,dat1,dat2;//D:\FPGA_Proj\FPGAtest\codepz
initial 
beginfids1 = $fopen("D:\\FPGA_Proj\\FPGAtest\\codepz\\a.bmp","rb");//调用2个图片dat1  = $fread(Buffer1,fids1);$fclose(fids1);
end
initial 
begin fids2 = $fopen("D:\\FPGA_Proj\\FPGAtest\\codepz\\b.bmp","rb");//调用2个图片dat2  = $fread(Buffer2,fids2);$fclose(fids2);
endinitial 
begin
i_clk=1;
i_rst=1;#1000;
i_rst=0;
end always #5 i_clk=~i_clk;always@(posedge i_clk or posedge i_rst) 
beginif(i_rst)beginII1<=8'd0;II2<=8'd0;idx<=0;endelse beginif(idx<=66413)beginII1<=Buffer1[idx];II2<=Buffer2[idx];endelse beginII1<=8'd0;II2<=8'd0;endidx<=idx+1;end
end//调用合并模块
tops tops_u(
.i_clk           (i_clk),
.i_rst           (i_rst),
.i_I1            (II1),
.i_I2            (II2),
.o_cf            (o_cf),
.o_cfbw          (o_cfbw)
);
//将合并后的模块保存到txt文件中
integer fout1;
initial beginfout1 = $fopen("SAVEcf.txt","w");
endalways @ (posedge i_clk)beginif(idx<=66619)$fwrite(fout1,"%d\n",o_cf);else$fwrite(fout1,"%d\n",0);
endinteger fout2;
initial beginfout2 = $fopen("SAVEcfbw.txt","w");
endalways @ (posedge i_clk)beginif(idx<=66619)$fwrite(fout2,"%d\n",o_cfbw);else$fwrite(fout2,"%d\n",0);
endendmodule
0X_020m

4.算法理论概述

       基于FPGA(Field-Programmable Gate Array)的图像差分运算及目标提取实现主要涉及图像处理、差分运算和目标提取等原理和数学公式。

一、图像处理原理

       图像处理是一种对图像信息进行加工、分析和理解的技术。其基本步骤包括图像采集、预处理、特征提取和目标提取等。在基于FPGA的图像处理中,我们通常需要设计并实现一个图像处理流水线,包括图像采集、预处理、特征提取和目标提取等模块。

二、差分运算原理

       差分运算是一种常用的图像特征提取方法,能够得到图像中的边缘信息。差分运算分为横向差分和纵向差分两种。横向差分运算能够得到图像中横向的边缘信息,纵向差分运算能够得到图像中纵向的边缘信息。具体实现时,我们可以将输入图像分成若干个像素对,对于每个像素对,计算其灰度值的差值,即得到横向或纵向的边缘信息。边缘信息的强弱可以用差值的大小来表示。

三、目标提取原理

        目标提取是指从图像中提取出感兴趣的目标,并将其与背景分离。基于FPGA的目标提取实现通常采用基于区域的分割方法,如阈值分割、区域生长等。阈值分割的基本原理是将像素的灰度值与一个阈值进行比较,根据比较结果将像素分为目标或背景。区域生长的基本原理是从一个或多个种子点开始,通过一定的规则将相邻的像素加入到同一区域中。

四、数学公式

基于FPGA的图像差分运算及目标提取实现涉及的主要数学公式如下:

  1. 横向差分公式:Dx(i,j) = |f(i,j) - f(i-1,j)|
  2. 纵向差分公式:Dy(i,j) = |f(i,j) - f(i,j-1)|
  3. 阈值分割公式:If(i,j) > T, then pixel(i,j) = 1; otherwise pixel(i,j) = 0

五、实现流程

基于FPGA的图像差分运算及目标提取实现的流程如下:

  1. 首先,通过图像采集模块获取输入图像;
  2. 接着,通过差分运算模块对预处理后的图像进行差分运算,得到目标信息;
  3. 再接着,通过目标提取模块对图像进行二值图处理进行目标提取;
  4. 最后,通过输出模块将提取的目标输出。

5.算法完整程序工程

OOOOO

OOO

O

相关文章:

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2022/07/28 01:51:…...

闭环思维笔记

这本书的情况我已经看完了&#xff0c;道理方面还是不错的&#xff0c;但案例方面跟我前几年在抖音看到的畅销书的案例一样&#xff0c;答辩&#xff0c;所以要看的人一定要根据不同的情况和场景去实施。 闭环思维的核心就是有始、有终、有反馈&#xff0c;在开始和结束过程中前…...

JMeter如何开展性能测试

文章目录 性能测试指标理解透彻以及测算微聊性能测试性能测试流程准备流程 ​&#x1f451;作者主页&#xff1a;Java冰激凌 性能测试指标理解透彻以及测算 虚拟用户数&#xff1a; 线程 用户并发数&#xff1a;指在某一时间&#xff0c;一定数量的虚拟用户同时对系统的某个功…...

使用logback按天生成日志并按等级进行分类

先看效果---->>>> 按照&#xff1a;error、info、warn进行分类&#xff1a; 每个文件里面按日期进行分类&#xff1a; 其中对应的Maven如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…...

【Linux】Linux项目部署及更改访问端口号和jdk、tomcat、MySQL环境搭建的配置安装

目录 一、作用 二、配置 1、上传安装包 2、jdk 2.1、解压对应安装包 2.2、环境变量搭建 3、tomcat 3.1、解压对应安装包 3.2、启动 3.3、设置防火墙 3.4、设置开发端口 4、MySQL 三、后端部署 四、Linux部署项目 1、单体项目 五、修改端口访问 1、进入目录 2…...

Pytorch 注意力机制解析与代码实现

目录 什么是注意力机制1、SENet的实现2、CBAM的实现3、ECA的实现4、CA的实现 什么是注意力机制 注意力机制是深度学习常用的一个小技巧&#xff0c;它有多种多样的实现形式&#xff0c;尽管实现方式多样&#xff0c;但是每一种注意力机制的实现的核心都是类似的&#xff0c;就…...

Python上下文管理:with语句执行原理

什么是上下文管理器 上下文管理器&#xff08;Context Manager&#xff09;是 Python 中用于管理资源分配和释放的一种机制。它允许您在进入和退出代码块时执行特定的操作&#xff0c;例如打开和关闭文件、建立和关闭数据库连接、获取和释放锁等。上下文管理器常常与 with 语句…...

Mac-Java开发环境安装(JDK和Maven)

JDK安装 1、访问oracle官网&#xff0c;下载jdk 点击下载链接&#xff1a;https://www.oracle.com/java/technologies/downloads/#java11-mac 选择Mac版本&#xff0c;下载dmg 打勾点击下载&#xff0c;跳转登陆&#xff0c;没有就注册&#xff0c;输入账号密码即可下载成功…...

mac下的vscode配置编译环境

基础开发环境 创建Dockerfile文件&#xff0c;内容如下&#xff1a; FROM ubuntu:20.04RUN apt update & apt install make gcc cmake git ninja-build -y CMD [ "sleep", "infinity" ]创建docker-compose.yml文件&#xff0c;内容如下&#xff1a; …...

洗衣洗鞋柜洗衣洗鞋小程序

支持&#xff1a;一键投递、上门取衣、自主送店、多种支付方式 TEL: 17638103951(同V) -----------------用户下单-------------- -------------------------多种支付和投递方式------------------------- -----------------商家取鞋--------------...

vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行 移到末尾,并且进入文本录入模式 GA (大写G大写A) 在一般模式(刚进入的模式,esc模式) GA 或 Shift ga 先 G 或 shiftg 到最后一行 然后 A 或 shifta 到本行末尾 并且进入文本录入模式 在最后一行下方新增一行 (光标换行,文字不…...

LeetCode热题100 240.搜索二维矩阵||

题目描述&#xff1a; 编写一个高效的算法来搜索 m*n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,2…...

Anaconda安装及使用教程

前言&#xff1a;鉴于本人曾经学过计算机双学位&#xff0c;近日突然发现电脑上装了Anaconda&#xff0c;然而脑子里对为什么装这个&#xff0c;啥时候装的以及怎么用的都忘记了。因此&#xff0c;想学习了解下这个软件。 1 Anaconda简介 Anaconda&#xff0c;一个开源的Pyth…...

动态规划算法实现------转换(编辑、变换)问题

目录 一、字符串转换问题 1.1问题 1.2确定动态规则(DP、状态转移方程)、初始值 (1)插入操作实现状态转移 (2)删除操作实现状态转移 (3)替换操作实现状态转移 (4)初始值 1.3动态规划算法代码实现 (1)完整代码 (2)程序速度优化 二、矩阵变换问题 2.1问题 2.2矩阵乘法 (1)矩阵相乘…...

C#使用Oracle.ManagedDataAccess.dll

1、添加引用 在网上下载一个Oracle.ManagedDataAccess.dll&#xff0c;引用即可&#xff0c;视操作系统的位数&#xff0c;最重要的是减少了Oracle客户端的安装&#xff1b; 2、web.config字串 <appSettings> <add key"hrp" value"Data Source (…...

分享88个工作总结PPT,总有一款适合您

分享88个工作总结PPT&#xff0c;总有一款适合您 88个工作总结PPT下载链接&#xff1a;https://pan.baidu.com/s/1y08X9RMdIOCncbs28aMgDw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 蓝色水彩风年终总结PPT模板 清新水彩简…...

【华为OD题库-002】最佳植树距离-Java

题目 小明在直线的公路上种树&#xff0c;现在给定可以种树的坑位的数星和位置&#xff0c;以及需要种多少棵树苗&#xff0c;问树苗之间的最小间距是多少时&#xff0c;可以保证种的最均匀&#xff08;两棵树苗之间的最小间距最大) 输入描述 输入三行: 第一行一个整数:坑位的数…...

【python与数据结构】(leetcode算法预备知识)

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ python与数据结构 Python 中常见的数据类型数据结构1.数组&#xff08;Array&#xff09;2.链表&#xff08;Linked List&#xff09;3.哈希表&#xff08;Hash Table&#xff09;4.队列&#xff08;Queue&#x…...

前端+Python实现Live2D虚拟直播姬

写在前面 很早就在b站上看到有虚拟主播的方案,之前看到的方案主要分为3种: ①用的unity+live2d②有的用的steam的Vtube Studio这款软件③也有基于galgame的。基于纯前端和python的我好像没找到,在掘金看到一篇文章:juejin.cn/post/720474… ,使用的pixi-live2d-display这…...

华纳云 宝塔怎么配置香港服务器多ip?

宝塔面板是一款开源的服务器管理面板&#xff0c;提供了简单易用的图形化界面&#xff0c;使用户能够轻松管理和配置服务器。通过切换到香港服务器多IP&#xff0c;用户可以拥有更多的IP资源&#xff0c;提供更灵活的网络服务。 配置香港服务器多IP 1.登录宝塔面板 打开浏览器&…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用

阻止除自定义标签之外的所有标签 先输入一些标签测试&#xff0c;说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时&#xff08;如通过点击或键盘导航&…...

理想汽车5月交付40856辆,同比增长16.7%

6月1日&#xff0c;理想汽车官方宣布&#xff0c;5月交付新车40856辆&#xff0c;同比增长16.7%。截至2025年5月31日&#xff0c;理想汽车历史累计交付量为1301531辆。 官方表示&#xff0c;理想L系列智能焕新版在5月正式发布&#xff0c;全系产品力有显著的提升&#xff0c;每…...