计算两张图片的信噪比时,结果偏低甚至出现负值怎么办?

峰值信噪比(Peak Signal Noise Ratio,PSNR)的定义为图像所允许最大像素值平方与均方误差比率的对数值的10倍。对于常见的8bit灰度图像,其最大的像素值为255,其峰值信噪比的计算公式为
A值一般取255
但是当一张图片的像素值的范围为0~255,比如去噪图片的原图lena.而去噪后图片的像素值范围为9到11。这个时候,尽管图像的去噪效果明显,计算出来的psnr值却是负值。
泊松噪声的去除
如图所示
首先,matlab自带psnr的计算函数,这是函数的调用形式
psnr的正确使用应该满足当两张图片的峰值均为255时,直接调用
psnr(A,ref)即可。
当有一张图片的像素值范围较小,如9~11时,应该把原图的像素值范围也统一到9~11。然后再计算psnr的值,这是调用psnr(A,ref,11)。
统一的代码如下:

function xm=zdd( x, mn, mx )
x = x - min( x(:) );
x = x ./ max(x(:));
xm= mn + x * (mx-mn);
 end

mn代表像素的最小值,如9;mx代表像素的最大值,如11。

zdd1=max(max(yhat));
zdd2=min(min(yhat));
yy=zdd(fd,zdd2,zdd1);
sprintf('OUTPUT PSNR = %f', psnr(yy,yhat,zdd1))

这样输出的峰值信噪比为
这样计算才是正确的psnr

### 如何使用 Navicat 创建表格 通过 Navicat 工具创建数据库表是一项基础操作,以下是关于如何利用 Navicat 的图形化界面以及 SQL 语句来实现此功能的具体描述。 #### 使用图形化界面创建表 1. **登录并连接到数据库** 首先启动 Navicat 并成功连接至目标 MySQL 数据库实例[^3]。确保已有一个可用的数据库用于存储新建的表。 2. **创建新表** 在左侧导航树中找到对应的数据库节点,右键单击“表”选项,选择“创建新表”。此会打开一个新的表设计窗口。 3. **定义字段属性** - 在“名”列填写字段名称。 - 设置字段的数据类型及其长度(如 `VARCHAR(255)` 或 `INT`)。 - 可选配置项包括是否允许为空 (`NULL`) 和默认值设定。 - 如果需要指定某个字段为主键,可以在右侧勾选“主键”选项;对于自增字段,还需额外启用“自动递增”特性。 4. **保存表结构** 完成所有必要字段的设计后按快捷键 `Ctrl+S` 进行保存,并为即将生成的新表提供唯一的名字,比如命名为 `users` 或者其他有意义的标识符。 #### 利用SQL命令手动构建表 除了借助GUI工具外,还可以直接编写SQL脚本来完成相同任务: ```sql CREATE TABLE employees ( id INT AUTO_INCREMENT, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50), hire_date DATE DEFAULT '2023-01-01', salary DECIMAL(10,2), PRIMARY KEY (id) ) ENGINE=InnoDB; ``` 上述代码片段展示了如何运用标准SQL语法去声明一个名为employees的工作人员记录列表[^2]。其中包含了几个典型组成部分——整型ID号作为唯一的识别码并通过AUTO_INCREMENT机制保证其独一无二性;字符串类型的first_name,last_name用来储存雇员姓名信息;日期hire_date表示雇佣起始间,默认设定了初始入职间为当前年份的一月一日;最后还有数值salary代表薪资水平精确到了两位小数点位置。 ### 注意事项 当执行任何DDL(Data Definition Language)指令之前,请务必确认所使用的引擎类型(engine),因为不同的存储引擎可能会影响性能表现或者支持的功能范围等方面差异显著。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值