基于FPGA的图像缩小算法实现,包括tb测试文件和MATLAB辅助验证
目录
1.算法运行效果图预览
2.算法运行软件版本
3.部分核心程序
4.算法理论概述
5.算法完整程序工程
1.算法运行效果图预览

将FPGA的处理结果导出到matlab中显示图像效果:

2.算法运行软件版本
vivado2019.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 i_en;
reg [7:0] image_buff [0:100000];
reg [7:0] II0;
wire [7:0] o_image;
wire flager;
integer fids,jj=0,dat;//D:\FPGA_Proj\FPGAtest\codepzinitial
beginfids = $fopen("D:\\FPGA_Proj\\FPGAtest\\codepz\\data.bmp","rb");dat = $fread(image_buff,fids);$fclose(fids);
endinitial
begin
i_clk=1;
i_rst=1;
#2000;
i_rst=0;
end always #10 i_clk=~i_clk;always@(posedge i_clk)
beginif(i_rst)beginII0<=0;jj<=0;endelsebeginif(jj<=66614 & jj>=1)i_en<=1'b1;elsei_en<=1'b0;II0<=image_buff[jj];jj<=jj+1;end
endtops tops_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_en (i_en),
.i_I0 (II0),
.o_image (o_image),
.flager (flager)
);reg[19:0]cnts;
always @(posedge i_clk or posedge i_rst)
beginif(i_rst)begincnts<=20'd0;end
else begincnts<=cnts+20'd1;end
end integer fout1;
integer fout2;
initial beginfout1 = $fopen("flager.txt","w");fout2 = $fopen("expansion.txt","w");
endalways @ (posedge i_clk)beginif(cnts <= 66514)begin$fwrite(fout1,"%d\n",flager);$fwrite(fout2,"%d\n",o_image);endelsebegin$fwrite(fout1,"%d\n",0);$fwrite(fout2,"%d\n",0);endendendmodule
0X_014m
4.算法理论概述
图像放小算法主要通过抽取算法实现,常见的抽取算法最大值抽取,和均值抽取。其示意图如下所示:

以缩小一半为例,如果是最大值抽取,则在一个2*2窗口内,选择最大的像素输出,那么整个图像的维度就变为了原图像的一半。如果是均值抽取,则在一个2*2窗口内,选择四个像素均值输出,那么整个图像的维度就变为了原图像的一半。
在FPGA上实现图像放小算法时,可以采用硬件并行处理的方式,以提高处理速度。具体地,可以通过图像数据缓冲单元模块来实现。
5.算法完整程序工程
OOOOO
OOO
O
相关文章:
基于FPGA的图像缩小算法实现,包括tb测试文件和MATLAB辅助验证
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的处理结果导出到matlab中显示图像效果: 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1p…...
黑马店评-04缓存更新策略,保证MySQL数据库中的数据和Redis中缓存的数据一致性
缓存更新策略(数据一致) 更新策略 缓存更新是Redis为了节约内存而设计出来的机制,当我们向Redis插入太多数据时就会导致缓存中的数据过多,所以Redis会对部分数据进行更新即淘汰 低一致性需求(数据长久不发生变化): 使用内存淘汰机制,例如店铺类型信息的查询缓存,因为这部分…...
matlab相机标定实验
实验原理 1. 相机标定坐标系 相机的参数对目标的识别、定位精度有很大的影响,相机标定就是为了求出相机的内外参数。标定中有3个不同层次的坐标系:世界坐标系、相机坐标系和图像坐标系(图像物理坐标系和图像像素坐标系)。世界坐…...
【每日一题Day343】LC2731移动机器人 | 脑筋急转弯+数学
移动机器人【LC2731】 有一些机器人分布在一条无限长的数轴上,他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时,它们以每秒钟一单位的速度开始移动。 给你一个字符串 s ,每个字符按顺序分别表示每个机器人移动…...
疯狂java 1.7垃圾回收机制
内存泄漏:如果一些分配出去的内存得不到及时回收,就会引起系统运行速度下降,甚至导致程序瘫痪 Java程序的内存分配和回收都是由JRE在后台自动进行的。JRE会负责回收哪些不再使用的内存,这种机制被称为垃圾回收(Garbag…...
day01_基础
零、今日内容 1 jdk 2 idea使用 3 HelloWorld程序 4 变量 5 数据类型 6 String 一、JDK安装 JDK java开发工具包,敲代码的环境 1.1 卸载 控制面板 -> 卸载程序 -> 选择jdk,右键卸载 1.2 安装 注意: 现在安装的是JDK8版本,虽然最新的版本是21版本,但是工作市场中最流行的…...
RabbitMQ开启消息发送确认和消费手动确认
开启RabbitMQ的生产者发送消息到RabbitMQ服务端的接收确认(ACK)和消费者通过手动确认或者丢弃消费的消息。 通过配置 publisher-confirm-type: correlated 和publisher-returns: true开启生产者确认消息。 server:port: 8014spring:rabbitmq:username: …...
嵌入式系统开发【深入浅出】 GPIO 类设备的驱动程序
目录 GPIO管脚的输出功能相当于控制、输入相当于检测 使用GPIO基本流程 对于某一个管脚来说最多有几种功能? 拓展 【定时器与系统定时器】 决定定时长短的因素: 普通定时器 系统定时器 STM32F103RBT6的时钟源有哪五种 sysclk 的时钟频率由哪个时钟源提供基…...
项目管理必备的22个公式
大家好,我是老原。 趁着国庆时间比较空闲,给你们整理了一些项目管理必备的计算公式,一共22个。 每一个公式都给你们标注了适用情况和使用方法,为了方便你们理解,也加了一些例子,保准你看了就会。 觉得不…...
ccache加速编译速度
ccache https://gitee.com/lixiaoxmm/ccache.git 依赖hiredis、zstd(zstd的cmakelists.txt在build/cmake目录下) 下载mingw,https://www.mingw-w64.org/downloads/#w64devkit hiredis、zstd使用mingw编译 cmake -G “MinGW Makefiles” cmakecache.txt手动修改去掉网络下载,…...
Apache POI使用
1.导入坐标 <!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi}</version></dependency><dependency><groupId>org.apache.poi</groupId><a…...
UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)
A - Weak Beats 链接 : A - Weak Beats 思路 : 模拟即可,如果在偶数位上出现了非0得元素,直接输出"No"后返回即可,循环顺利结束的话,就直接输出"Yes"; 代码 : #include<bits/stdc.h> #define IOS ios::sy…...
Docker 网络管理
Docker 网络实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机…...
网络安全国家队-安防思考与实践
按照工信部“三同步”安全建设的统一要求,本项目的实施应具备符合等级保护要求的安全防护措施(主要为传输控制、防火墙隔离、入侵检测、安全审计等网络安全措施;操作系统安全、数据库安全、防病毒管理、安全审计等基础系统安全措施࿰…...
epoll 定时器
参考: Linux下使用epoll监听定时器-CSDN博客 但是这个用的是gettimeofday。 本人使用的是 #include <stdlib.h> #include<stdio.h> #include <sys/timerfd.h> #include <sys/epoll.h> #include <unistd.h> #include <sys/time.…...
BUUCTF Java逆向解密 1
Class文件是Java编译后的二进制字节码文件。 我这里使用的是jadx-gui,直接将class文件拖进去即可 package defpackage;import java.util.ArrayList; import java.util.Scanner;/* renamed from: Reverse reason: default package */ /* loaded from: Reverse.clas…...
BUUCTF [MRCTF2020]Ez_bypass1
这道题全程我都是用bp做的 拿到题目 我们查看页面源代码得到 代码审计 我们要用get传入id和gg两个参数,id和gg的值要求不能相等,但是id和gg的md5强比较必须相等 if(isset($_GET[gg])&&isset($_GET[id])) {$id$_GET[id];$gg$_GET[gg];if (md5($…...
深入理解强化学习——强化学习和有监督学习
分类目录:《深入理解强化学习》总目录 通过前文的介绍,我们现在应该已经对强化学习的基本数学概念有了一定的了解。这里我们回过头来再看看一般的有监督学习和强化学习的区别。以图片分类为例,有监督学习(Supervised Learning&…...
设计模式 - 结构型模式考点篇:装饰者模式(概念 | 案例实现 | 优缺点 | 使用场景)
目录 一、结构型模式 1.1、装饰者模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、结构型模式 1.1、装饰者模式 1.1.1、概念 装饰者模式就是指在不改变现有对象结构的情况下,动态的给该对象增加一些职责(增加额外功能&#…...
计算机竞赛 题目:基于深度学习的手势识别实现
文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势识别实现 该项目较为新颖,适合作为竞赛课题…...
从v4l2-ctl命令到media拓扑:手把手教你调试RK3568上的OV8858摄像头图像
RK3568平台OV8858摄像头深度调试实战:从硬件链路到图像优化的全流程解析 当你在RK3568平台上调试OV8858摄像头时,是否遇到过这样的场景:设备树配置看似正确,但摄像头输出的图像却出现花屏、颜色异常或干脆没有信号?作为…...
关键词搜索和SEO优化有什么关系_常见的关键词搜索误区有哪些
<h2>关键词搜索和SEO优化有什么关系</h2> <p>在当前数字化时代,网站流量的获取和保持已成为每一个企业和个人的重要目标。在这其中,关键词搜索和SEO优化是两个密不可分的环节。它们之间的关系不仅丰富了我们的网站内容,还帮…...
跨平台终端与进程控制:从原理到实践
跨平台终端与进程控制:从原理到实践 【免费下载链接】node-pty Fork pseudoterminals in Node.JS 项目地址: https://gitcode.com/gh_mirrors/no/node-pty 在现代软件开发中,终端交互和进程管理是不可或缺的核心能力。无论是构建IDE、开发自动化工…...
新手零基础入门CAN总线:借助快马AI生成可运行代码理解通信机制
作为一个刚接触嵌入式开发的菜鸟,最近被导师要求学习CAN总线协议。面对手册里密密麻麻的寄存器配置和报文格式说明,我一度怀疑自己是不是选错了专业方向。直到发现了InsCode(快马)平台,用它的AI生成功能快速搭建了一个可运行的CAN通信demo&am…...
Power BI 网页数据抓取实战:以新浪外汇为例,教你5分钟搞定动态表格导入与清洗
Power BI 网页数据抓取实战:新浪外汇动态表格导入与清洗全流程解析 外汇市场瞬息万变,作为业务分析师,每天手动记录汇率数据既耗时又容易出错。今天我们就以新浪财经外汇数据为例,手把手教你用Power BI实现5分钟自动化抓取清洗的完…...
从静态到动态:开源AI视频生成工具如何用3分钟改变你的创作方式
从静态到动态:开源AI视频生成工具如何用3分钟改变你的创作方式 【免费下载链接】stepvideo-ti2v 项目地址: https://ai.gitcode.com/StepFun/stepvideo-ti2v 在AI技术日新月异的今天,视频创作正经历着一场前所未有的革命。阶跃星辰推出的Step-Vi…...
SDXL 1.0插件开发:Photoshop脚本自动化集成
SDXL 1.0插件开发:Photoshop脚本自动化集成 1. 为什么需要Photoshop与SDXL 1.0的深度协作 设计师每天面对的不是单一工具,而是一整套工作流。当AI生成图像成为创意起点,问题就来了:生成的图片如何快速进入专业设计环节ÿ…...
选择性记忆提取,把人类遗忘机制用在了RAG上,这架构真有点东西
当前大模型处理长文本面临三大瓶颈:算力爆炸:传统注意力机制随文本长度呈二次方增长(O(N)),百万级token直接OOMRAG碎片化:检索增强生成将文档切成独立片段,破坏多跳推理的逻辑链条记忆遗忘&…...
WubiUEFI终极指南:如何在Windows中零风险安装Ubuntu系统
WubiUEFI终极指南:如何在Windows中零风险安装Ubuntu系统 【免费下载链接】wubiuefi fork of Wubi (https://launchpad.net/wubi) for UEFI support and for support of recent Ubuntu releases 项目地址: https://gitcode.com/gh_mirrors/wu/wubiuefi 你是否…...
5步释放游戏潜能:面向玩家的原神帧率解锁完全指南
5步释放游戏潜能:面向玩家的原神帧率解锁完全指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 一、问题发现:为什么你的高端显卡在原神中无法全力奔跑…...
