首页 > 编程语言 >基于FPGA的图像缩小算法实现,包括tb测试文件和MATLAB辅助验证

基于FPGA的图像缩小算法实现,包括tb测试文件和MATLAB辅助验证

时间:2023-12-08 22:55:42浏览次数:40  
标签:FPGA clk image 算法 MATLAB 图像 tb reg

1.算法运行效果图预览

 

 

 

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

 

 

 

2.算法运行软件版本

vivado2019.2

 

matlab2022a

 

3.算法理论概述

       图像放小算法主要通过抽取算法实现,常见的抽取算法最大值抽取,和均值抽取。其示意图如下所示:

 

 

 

       以缩小一半为例,如果是最大值抽取,则在一个2*2窗口内,选择最大的像素输出,那么整个图像的维度就变为了原图像的一半。如果是均值抽取,则在一个2*2窗口内,选择四个像素均值输出,那么整个图像的维度就变为了原图像的一半。

 

       在FPGA上实现图像放小算法时,可以采用硬件并行处理的方式,以提高处理速度。具体地,可以通过图像数据缓冲单元模块来实现。

 

 

 

 

4.部分核心程序

`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\codepz
 
initial 
begin
	fids = $fopen("D:\\FPGA_Proj\\FPGAtest\\codepz\\data.bmp","rb");
	dat  = $fread(image_buff,fids);
	$fclose(fids);
end
 
initial 
begin
i_clk=1;
i_rst=1;
#2000;
i_rst=0;
end 
 
always #10  i_clk=~i_clk;
 
always@(posedge i_clk) 
begin
     if(i_rst)
     begin
	 II0<=0;
	 jj<=0;
     end
     else
     begin
     if(jj<=66614 & jj>=1)
     i_en<=1'b1;
     else
     i_en<=1'b0;
	 II0<=image_buff[jj];
	 jj<=jj+1;
	 end
end
 
 
tops 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)
begin
     if(i_rst)
     begin
         cnts<=20'd0;
     end
else begin
         cnts<=cnts+20'd1;
     end
end  
 
 
 
integer fout1;
integer fout2;
initial begin
  fout1 = $fopen("flager.txt","w");
  fout2 = $fopen("expansion.txt","w");
end
 
 
always @ (posedge i_clk)
 begin
    if(cnts <= 66514)
    begin
	$fwrite(fout1,"%d\n",flager);
	$fwrite(fout2,"%d\n",o_image);
	end
	else
    begin
	$fwrite(fout1,"%d\n",0);
	$fwrite(fout2,"%d\n",0);
	end
	
end
 
endmodule

  

标签:FPGA,clk,image,算法,MATLAB,图像,tb,reg
From: https://www.cnblogs.com/matlabworld/p/17889224.html

相关文章

  • 1299元!一图看懂长江存储致态Ti600 4TB超大杯
    今天,长江存储旗下致态正式发布了Ti6004TB大容量版本的SSD,目前已在京东和天猫官方旗舰店开售,价格为1299元。致态Ti6004TB容量版本采用了基于长江存储晶栈Xtacking3.0架构的QLC原厂颗粒,支持PCIe4.0、NVMe2.0协议,顺序读速达到了7000MB/s,顺序写入速度为6000MB/s。而且在晶栈Xtack......
  • JetBrains DataSpell 2023.3 (macOS, Linux, Windows) - 专业数据科学家的 IDE
    JetBrainsDataSpell2023.3(macOS,Linux,Windows)-专业数据科学家的IDE请访问原文链接:https://sysin.org/blog/jb-dataspell-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsDataSpell-专业数据科学家的IDE智能JupyterNotebook专为高交......
  • JetBrains DataGrip 2023.3 (macOS, Linux, Windows) - 数据库和 SQL 跨平台 IDE
    JetBrainsDataGrip2023.3(macOS,Linux,Windows)-数据库和SQL跨平台IDE请访问原文链接:https://sysin.org/blog/jb-datagrip-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsDataGrip-多种数据库,一个工具为什么选择DataGrip轻松处理数据......
  • JetBrains GoLand 2023.3 (macOS, Linux, Windows) - Go Full Stack
    JetBrainsGoLand2023.3(macOS,Linux,Windows)-GoFullStack请访问原文链接:https://sysin.org/blog/jb-goland-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsGoLand-GoFullStackGo语言全栈IDE,对JavaScript、TypeScript和数据库提供......
  • JetBrains PyCharm 2023.3 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE
    JetBrainsPyCharm2023.3(macOS,Linux,Windows)-面向专业开发者的PythonIDE请访问原文链接:https://sysin.org/blog/jb-pycharm-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsPyCharm-面向专业开发者的PythonIDE为什么选择PyCharm在一......
  • JetBrains PhpStorm 2023.3 (macOS, Linux, Windows) - 高效智能的 PHP IDE
    JetBrainsPhpStorm2023.3(macOS,Linux,Windows)-高效智能的PHPIDE请访问原文链接:https://sysin.org/blog/jb-phpstorm-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsPhpStorm-高效智能的PHPIDE为什么选择PhpStorm享受高效的PHP观......
  • JetBrains IntelliJ IDEA 2023.3 (macOS, Linux, Windows) - 功能强大,符合人体工程学
    JetBrainsIntelliJIDEA2023.3(macOS,Linux,Windows)-功能强大,符合人体工程学的JVMIDE请访问原文链接:https://sysin.org/blog/jb-idea-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsIntelliJIDEA-功能强大,符合人体工程学的JVMIDE为何......
  • JetBrains WebStorm 2023.3 (macOS, Linux, Windows) - 最智能的 JavaScript IDE
    JetBrainsWebStorm2023.3(macOS,Linux,Windows)-最智能的JavaScriptIDE请访问原文链接:https://sysin.org/blog/jb-webstorm-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsWebStorm-最智能的JavaScriptIDEWebStorm是一个适用于JavaSc......
  • JetBrains RubyMine 2023.3 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE
    JetBrainsRubyMine2023.3(macOS,Linux,Windows)-最智能的Ruby与RailsIDE请访问原文链接:https://sysin.org/blog/jb-rubymine-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsRubyMine-最智能的Ruby与RailsIDE为什么选择RubyMine改......
  • JetBrains CLion 2023.3 (macOS, Linux, Windows) - C 和 C++ 跨平台 IDE
    JetBrainsCLion2023.3(macOS,Linux,Windows)-C和C++跨平台IDE请访问原文链接:https://sysin.org/blog/jb-clion-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsCLion-C和C++跨平台IDECLion2022现已发布。查看最新变化用于强大语......