评价图像模糊度的经典指标的matlab代码

时间: 2024-01-30 11:02:08 浏览: 23
图像模糊度是图像质量的一个重要指标,可以使用多种经典指标进行评价。以下是常用的几种指标及其 MATLAB 代码实现: 1. 均方误差(MSE): ``` function mse_value = mse(image, blur_image) [m, n] = size(image); mse_value = sum(sum((double(image) - double(blur_image)).^2)) / (m * n); end ``` 2. 峰值信噪比(PSNR): ``` function psnr_value = psnr(image, blur_image) mse_value = mse(image, blur_image); psnr_value = 10 * log10(255^2 / mse_value); end ``` 3. 结构相似性指数(SSIM): ``` function ssim_value = ssim(image, blur_image) k1 = 0.01; k2 = 0.03; L = 255; [m, n] = size(image); image = double(image); blur_image = double(blur_image); mu1 = filter2(fspecial('gaussian', 11, 1.5), image, 'same'); mu2 = filter2(fspecial('gaussian', 11, 1.5), blur_image, 'same'); mu1_sq = mu1.^2; mu2_sq = mu2.^2; mu1_mu2 = mu1 .* mu2; sigma1_sq = filter2(fspecial('gaussian', 11, 1.5), image.^2, 'same') - mu1_sq; sigma2_sq = filter2(fspecial('gaussian', 11, 1.5), blur_image.^2, 'same') - mu2_sq; sigma12 = filter2(fspecial('gaussian', 11, 1.5), image .* blur_image, 'same') - mu1_mu2; C1 = (k1 * L)^2; C2 = (k2 * L)^2; ssim_map = ((2 * mu1_mu2 + C1) .* (2 * sigma12 + C2)) ./ ((mu1_sq + mu2_sq + C1) .* (sigma1_sq + sigma2_sq + C2)); ssim_value = mean2(ssim_map); end ``` 以上三种指标都是越大越好,因此在比较图像模糊度时,数值越大则表示图像越清晰。

相关推荐

最新推荐

recommend-type

模糊聚类函数的matlab代码

模糊聚类函数的matlab代码 1,求模糊相似矩阵 2,求模糊等价矩阵 3,求聚类
recommend-type

图像质量评价(Image Quality Assessment,IQA)概述

第三章 图像质量评价数据集和性能指标 16 3.1 图像质量评价数据集简介 16 3.2 图像质量评价模型性能指标 17 第四章 总结与展望 19 4.1 归纳总结 19 4.2 未来展望 19 参考文献 21 第一章 引言 随着现代科技的发展,...
recommend-type

基于模糊检测概率变化的模糊图像质量评价算法

为了解决无参考模糊图像质量评价中缺少人眼视觉特性的问题,提出了一种基于模糊检测概率变化的模糊图像质量评价算法,该算法首先对图像进行预处理,利用改进的自适应算法计算模糊图像的特定显著阈值,并通过显著阈值对...
recommend-type

运动模糊matlab编程

运动模糊matlab编程 如何采用matlab编程得到运动模糊恢复的图像
recommend-type

微信小程序-番茄时钟源码

微信小程序番茄时钟的源码,支持进一步的修改。番茄钟,指的是把工作任务分解成半小时左右,集中精力工作25分钟后休息5分钟,如此视作种一个“番茄”,而“番茄工作法”的流程能使下一个30分钟更有动力。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。