C C++最全python设计PSNR和SSIM计算函数_ssim内置函数(2),C C++开发人员不得不收集的代码

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


## SSIM



import numpy as np
from PIL import Image
from scipy.signal import convolve2d

def gauss2D(shape=(3, 3), sigma=0.5):

m, n = [(ss - 1.) / 2. for ss in shape]
y, x = np.ogrid[-m:m + 1, -n:n + 1]
h = np.exp(-(x \* x + y \* y) / (2. \* sigma \* sigma))
h[h < np.finfo(h.dtype).eps \* h.max()] = 0
h_sum = h.sum()
if h_sum != 0:
    h /= h_sum
return h

def filter2(x, kernel, mode=‘same’):
return convolve2d(x, np.rot90(kernel, 2), mode=mode)

def compute_ssim(image1, image2, k1=0.01, k2=0.03, win_size=11, L=255):

if not image1.shape == image2.shape:
    raise ValueError("输入的两张图片大小应该一样")
if len(image1.shape) > 2:
    raise ValueError("输入的图片应为灰度图")

M, N = image1.shape
C1 = (k1 \* L) \*\* 2
C2 = (k2 \* L) \*\* 2
window = gauss2D(shape=(win_size, win_size), sigma=1.5)
window = window / np.sum(np.sum(window))

if image1.dtype == np.uint8:
    image1 = np.double(image1)
if image2.dtype == np.uint8:
    image2 = np.double(image2)

mu1 = filter2(image1, window, 'valid')
mu2 = filter2(image2, window, 'valid')
mu1_sq = mu1 \* mu1
mu2_sq = mu2 \* mu2
mu1_mu2 = mu1 \* mu2
sigma1_sq = filter2(image1 \* image1, window, 'valid') - mu1_sq
sigma2_sq = filter2(image2 \* image2, window, 'valid') - mu2_sq
sigmal2 = filter2(image1 \* image2, window, 'valid') - mu1_mu2

ssim_map = ((2 \* mu1_mu2 + C1) \* (2 \* sigmal2 + C2)) / ((mu1_sq + mu2_sq + C1) \* (sigma1_sq + sigma2_sq + C2))

return np.mean(np.mean(ssim_map))

## 其他




![img](https://img-blog.csdnimg.cn/img_convert/f654f3af6a9b4633f54d209635ef8355.png)
![img](https://img-blog.csdnimg.cn/img_convert/5ed11400c566f27ca766d474bff6287a.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值