目录
1.算法运行效果图预览
2.算法运行软件版本
3.部分核心程序
4.算法理论概述
5.算法完整程序工程
1.算法运行效果图预览
(完整程序运行后无水印)
将数据导入MATLAB,体现图像:
2.算法运行软件版本
vivado2019.2,matlab2022a
3.部分核心程序
(完整版代码包含具体中文注释和操作步调视频)
- ............................................................
- module test_image;
- reg i_clk;
- reg i_rst;
- reg [7:0] Buffer [0:100000];
- reg [7:0] II;
- wire [7:0] o_Ith;
- wire [7:0] o_Itv;
- integer fids,idx=0,dat;
-
-
- //D:\FPGA_Proj\FPGAtest\code_proj\project_1\project_1.srcs\sources_1
- initial
- begin
- fids = $fopen("D:\\code2\\code_proj\\data.bmp","rb");
- dat = $fread(Buffer,fids);
- $fclose(fids);
- end
-
-
-
- initial
- begin
- i_clk=1;
- i_rst=1;
- #1000;
- i_rst=0;
- end
- always #5 i_clk=~i_clk;
-
- always@(posedge i_clk)
- begin
- II<=Buffer[idx];
- idx<=idx+1;
- end
-
- tops tops_u(
- .i_clk (i_clk),
- .i_rst (i_rst),
- .i_I (II),
- .o_Ith (o_Ith),
- .o_Itv (o_Itv)
- );
- integer fout1;
- integer fout2;
- initial begin
- fout1 = $fopen("SAVEDATA1.txt","w");
- fout2 = $fopen("SAVEDATA2.txt","w");
- end
- always @ (posedge i_clk)
- begin
- if(idx<=66614 & idx>=2)
- $fwrite(fout1,"%d\n",o_Ith);
- else
- $fwrite(fout1,"%d\n",0);
-
- if(idx<=66614 & idx>=2)
- $fwrite(fout2,"%d\n",o_Itv);
- else
- $fwrite(fout2,"%d\n",0);
- end
- endmodule
- 0X_040m
复制代码 4.算法理论概述
在图像处理领域,图像退化是一个常见的问题,而运动含糊是其中一种典型的退化情势。运动含糊通常是由于相机与物体之间的相对运动而产生的,会导致图像变得含糊不清。基于 FPGA(现场可编程门阵列)实现图像退化算法具有及时性高、并行处理能力强等长处。
连续空间中的运动含糊模型
离散空间中的运动含糊模型
横向运动含糊的点扩散函数
纵向运动含糊的点扩散函数
算法流程
横向运动含糊的实现可以通过对图像的每一行进行一维卷积来完成。具体步调如下:
1.读取图像数据:从图像存储器中逐行读取图像数据。
2.卷积操作:对每一行图像数据进行一维卷积,卷积核为横向运动含糊的点扩散函数。
3.存储结果:将卷积后的结果存储到另一个图像存储器中。
纵向运动含糊的实现可以通过对图像的每一列进行一维卷积来完成。具体步调如下:
1.读取图像数据:从图像存储器中逐列读取图像数据。
2.卷积操作:对每一列图像数据进行一维卷积,卷积核为纵向运动含糊的点扩散函数。
3.存储结果:将卷积后的结果存储到另一个图像存储器中。
5.算法完整程序工程
OOOOO
OOO
O
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |