基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序
【摘要】 1.算法运行效果图预览vivado2019.2和matlab2022a测试,结果如下: 2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述 图像质量的含义包括图像的逼真度和图像的可读懂性。所谓图像的逼真度是指被评价图像与标准图像的偏离程度,偏差越小,逼真度越高。而图像的可读懂性是指由图像能向人或机器提供信息的能力,它不仅与图像系统的应用要求...
1.算法运行效果图预览
vivado2019.2和matlab2022a测试,结果如下:
2.算法运行软件版本
vivado2019.2
matlab2022a
3.算法理论概述
图像质量的含义包括图像的逼真度和图像的可读懂性。所谓图像的逼真度是指被评价图像与标准图像的偏离程度,偏差越小,逼真度越高。而图像的可读懂性是指由图像能向人或机器提供信息的能力,它不仅与图像系统的应用要求有关,而且常常与人眼的主观感觉有关。图像质量指标包括分辨率、色彩深度、图像失真等方面。
NC图像质量评估指标是指用于评估图像质量的一种指标,通常用于图像处理和计算机视觉领域。NC代表"Normalized Cross-Correlation",即标准化的互相关。这一指标通常用于比较两幅图像的相似性或匹配程度。在图像质量评估中,NC指标可以用来衡量一幅图像与原始图像之间的相似度,从而评估图像的失真程度或质量损失。
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 [7:0] tmps1 [0:100000];
reg [7:0] tmps2 [0:100000];
reg [7:0] Images1;
reg [7:0] Images2;
wire [15:0] o_NC;
integer fids1,fids2,idx=0,dat1,dat2;
//D:\FPGA_Proj\FPGAtest\codepz\test0N.bmp 路径改为自己的路径
initial
begin
fids1 = $fopen("D:\\FPGA_Proj\\FPGAtest\\code2\\test0.bmp","rb");
dat1 = $fread(tmps1,fids1);
$fclose(fids1);
fids2 = $fopen("D:\\FPGA_Proj\\FPGAtest\\code2\\test0N.bmp","rb");
dat2 = $fread(tmps2,fids2);
$fclose(fids2);
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
if(idx<=66613)
begin
Images1<=tmps1[idx];
Images2<=tmps2[idx];
end
else begin
Images1<=8'd0;
Images2<=8'd0;
end
idx<=idx+1;
end
tops tops_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_images1 (Images1),
.i_images2 (Images2),
.o_NC (o_NC)
);
endmodule
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)