ssim算法原理 - 我们都不是神的孩子 - CSDN博客 http://blog.csdn.net/ecnu18918079120/article/details/60149864

一、结构相似性(structural similarity)

自然图像具有极高的结构性,表现在图像的像素间存在着很强的相关性,尤其是在空间相似的情况下。这些相关性在视觉场景中携带着关于物体结构的重要信息。我们假设人类视觉系统(HSV)主要从可视区域内获取结构信息。所以通过探测结构信息是否改变来感知图像失真的近似信息。
大多数的基于误差敏感度(error sensitivity)的质量评估方法(如MSE,PSNR)使用线性变换来分解图像信号,这不会涉及到相关性。我们要讨论的SSIM就是要找到更加直接的方法来比较失真图像和参考图像的结构。

二、SSIM指数

三、SSIM指数应用于图像质量评估

在图像质量评估之中,局部求SSIM指数的效果要好于全局。第一,图像的统计特征通常在空间中分布不均;第二,图像的失真情况在空间中也是变化的;第三,在正常视距内,人们只能将视线聚焦在图像的一个区域内,所以局部处理更符合人类视觉系统的特点;第四,局部质量检测能得到图片空间质量变化的映射矩阵,结果可服务到其他应用中。
所以,在上述公式中,都加入了一个8*8的方形窗,并且逐像素的遍历整幅图片。每一步计算,和SSIM都是基于窗口内像素的,最终得到一个SSIM指数映射矩阵,由局部SSIM指数组成。然而,简单的加窗会使映射矩阵出现不良的“分块”效应。为解决这问题,我们使用11*11的对称高斯加权函数作为加权窗口,标准差为1.5,且
              (10)
的估计值表示为:
              (11)
         (12)
     (13)
应用这种加窗方法,映射矩阵就可展现出局部各向同性的性质。
在这里,经过一些实验总结,我们把K1设为0.01,K2设为0.03,然后用平均SSIM指数作为整幅图像的估计质量评价:
   (14)
其中X,Y为图像,为局部SSIM指数在映射中的位置,MN为局部窗口的数量。
四、matlab实现
[plain] view plain copy
  1. function [mssim, ssim_map,siga_sq,sigb_sq] = SSIM(ima, imb)
  2. % ========================================================================
  3. %ssim的算法主要参考如下论文:
  4. %Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, "Image
  5. % quality assessment: From error visibility to structural similarity,"
  6. % IEEE Transactios on Image Processing, vol. 13, no. 4, pp. 600-612,
  7. % Apr. 2004.
  8. %  首先对图像加窗处理,w=fspecial('gaussian', 11, 1.5);
  9. %                 (2*ua*ub+C1)*(2*sigmaa*sigmab+C2)
  10. %   SSIM(A,B)=————————————————————————
  11. %              (ua*ua+ub*ub+C1)(sigmaa*sigmaa+sigmab*sigmab+C2)
  12. %     C1=(K1*L);
  13. %     C2=(K2*L);   K1=0.01,K2=0.03
  14. %     L为灰度级数,L=255
  15. %-------------------------------------------------------------------
  16. %     ima - 比较图像A
  17. %     imb - 比较图像B
  18. %
  19. % ssim_map - 各加窗后得到的SSIM(A,B|w)组成的映射矩阵
  20. %    mssim - 对加窗得到的SSIM(A,B|w)求平均,即最终的SSIM(A,B)
  21. %  siga_sq - 图像A各窗口内灰度值的方差
  22. %  sigb_sq - 图像B各窗口内灰度值的方差
  23. %-------------------------------------------------------------------
  24. %  Cool_ben
  25. %========================================================================
  26. w = fspecial('gaussian', 11, 1.5);  %window 加窗
  27. K(1) = 0.01;
  28. K(2) = 0.03;
  29. L = 255;
  30. ima = double(ima);
  31. imb = double(imb);
  32. C1 = (K(1)*L)^2;
  33. C2 = (K(2)*L)^2;
  34. w = w/sum(sum(w));
  35. ua   = filter2(w, ima, 'valid');%对窗口内并没有进行平均处理,而是与高斯卷积,
  36. ub   = filter2(w, imb, 'valid'); % 类似加权平均
  37. ua_sq = ua.*ua;
  38. ub_sq = ub.*ub;
  39. ua_ub = ua.*ub;
  40. siga_sq = filter2(w, ima.*ima, 'valid') - ua_sq;
  41. sigb_sq = filter2(w, imb.*imb, 'valid') - ub_sq;
  42. sigab = filter2(w, ima.*imb, 'valid') - ua_ub;
  43. ssim_map = ((2*ua_ub + C1).*(2*sigab + C2))./((ua_sq + ub_sq + C1).*(siga_sq + sigb_sq + C2));
  44. mssim = mean2(ssim_map);
  45. return

转载于:https://www.cnblogs.com/wxl845235800/p/7692578.html

SSIM(structural similarity index),结构相似性相关推荐

  1. 两种常用的全参考图像质量评价指标——峰值信噪比(PSNR)和结构相似性(SSIM)

    原文:https://blog.csdn.net/zjyruobing/article/details/49908979 1.PSNR(Peak Signal to Noise Ratio)峰值信噪比 ...

  2. 图像增强评价指标学习之——结构相似性SSIM

    SSIM(structural similarity index),结构相似性,是一种衡量两幅图像相似度的指标.该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Im ...

  3. 【图像处理】——图像质量评价指标信噪比(PSNR)和结构相似性(SSIM)(含原理和Python代码)

    目录 一.信噪比(PSNR) 1.信噪比的原理与计算公式 2.Python常规代码实现PSNR计算 3.TensorFlow实现PSNR计算 4.skimage实现PSNR计算 5.三种方法计算的结果 ...

  4. ssim算法计算图片_图像质量评估算法 SSIM(结构相似性)

    SSIM的全称为structural similarity index,即为结构相似性,是一种衡量两幅图像相似度的指标.该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory fo ...

  5. matlab snr mse,MATLAB 均方根误差MSE、两图像的信噪比SNR、峰值信噪比PSNR、结构相似性SSIM...

    今天的作业是求两幅图像的MSE.SNR.PSNR.SSIM.代码如下: clc; close all; X = imread('q1.tif');% 读取图像 Y=imread('q2.tif'); ...

  6. Image Quality Assessment: From Error Visibility to Structural Similarity

    Image Quality Assessment: From Error Visibility to Structural Similarity图像质量评估:从错误可见性到结构相似性 论文翻译 论文地 ...

  7. 光谱相似指数Spectral Similarity Index(SSI)计算

    美国电影艺术与科学学院(The Academy of Motion Picture Arts and Sciences)与电影摄影师.电影照明专家.照明制造商.照明.成像.摄像科学家和工程师合作,开发 ...

  8. 【质量评价】Inferring Point Cloud Quality via Graph Similarity 基于图相似性的点云质量评价

    [质量评价]Inferring Point Cloud Quality via Graph Similarity 基于图相似性的点云质量评价 内容介绍 1. Introduction 1.1 Back ...

  9. 图像的评价指标之SSMI——结构相似性

    图像的评价指标之SSMI--结构相似性 文章目录: https://blog.csdn.net/chaipp0607/article/details/70158835 https://zhuanlan ...

最新文章

  1. 俄罗斯议会下院通过“老大哥”反恐法
  2. 使用wireshark抓取wcf生成的soap消息
  3. HTTP请求头中各字段解释
  4. sql语句--查询语句(MySQL)
  5. 关于封装 c# 115691143
  6. jsp内置对象的提交方式
  7. 微信怎么at所有人_微信分付怎么开通,入口在这里,简单几步教你快速开通
  8. 飘逸的python - yield简明教程
  9. 【Python实例第8讲】模型复杂度影响
  10. 如何优雅地计算多变量
  11. 流媒体传输协议浅析(三)可靠UDP传输方案
  12. python中pdfplumber解析pdf_Python中pdfplumber如何提取pdf中的表格数据
  13. 主流的web前端开发及调试工具
  14. 华硕固件Linux-arm,AC86UASUS固件交叉编译的问题
  15. c程序设计第五版谭浩强课后答案 第四章习题答案
  16. 每位开发人员都应铭记的10句编程谚语
  17. 【算法题解】2022年第四届河南省CCPC大学生程序设计竞赛(喜提银牌)
  18. iPad pro能运行c语言吗,科技:与苹果iPad Pro的USB-C兼容或不兼容的配件你都知道吗?...
  19. HashMap - 基于哈希表和 Map 接口的键值对利器 (JDK 1.7)
  20. 初学者入门HTML2

热门文章

  1. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构—— 1338:【例3-3】医院设置
  2. 大数据WEB阶段(六)MySql详解(二)
  3. ubuntu16.04中成功安装ROS后,小海龟示例
  4. 【机器视觉】 elseif算子
  5. android权限询问,Android:检查是否必须询问运行时权限
  6. 微信小程序封装的Promise工具类 ES6语法
  7. 每天一道LeetCode-----判断某棵树是否是二叉搜索树
  8. 每天一道LeetCode-----计算从二维数组的左上角到达右下角的所有路径数及最短的那条,如果存在障碍物时又是多少
  9. 和java通信_[源码和文档分享]基于JAVA的即时通信软件
  10. 2022.2.13java学习笔记