MCPcopy Create free account
hub / github.com/VisionXLab/OF-Diff / ssim

Function ssim

ldm/modules/image_degradation/utils_image.py:669–689  ·  view source on GitHub ↗
(img1, img2)

Source from the content-addressed store, hash-verified

667
668
669def ssim(img1, img2):
670 C1 = (0.01 * 255)**2
671 C2 = (0.03 * 255)**2
672
673 img1 = img1.astype(np.float64)
674 img2 = img2.astype(np.float64)
675 kernel = cv2.getGaussianKernel(11, 1.5)
676 window = np.outer(kernel, kernel.transpose())
677
678 mu1 = cv2.filter2D(img1, -1, window)[5:-5, 5:-5] # valid
679 mu2 = cv2.filter2D(img2, -1, window)[5:-5, 5:-5]
680 mu1_sq = mu1**2
681 mu2_sq = mu2**2
682 mu1_mu2 = mu1 * mu2
683 sigma1_sq = cv2.filter2D(img1**2, -1, window)[5:-5, 5:-5] - mu1_sq
684 sigma2_sq = cv2.filter2D(img2**2, -1, window)[5:-5, 5:-5] - mu2_sq
685 sigma12 = cv2.filter2D(img1 * img2, -1, window)[5:-5, 5:-5] - mu1_mu2
686
687 ssim_map = ((2 * mu1_mu2 + C1) * (2 * sigma12 + C2)) / ((mu1_sq + mu2_sq + C1) *
688 (sigma1_sq + sigma2_sq + C2))
689 return ssim_map.mean()
690
691
692'''

Callers 1

calculate_ssimFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected