两个样本,一个正常,一个反色。


现有一个新图片,光亮度稍亮,用SSIM判断与哪个样本相似,怎么避免明暗差异的影响。
两个样本,一个正常,一个反色。


现有一个新图片,光亮度稍亮,用SSIM判断与哪个样本相似,怎么避免明暗差异的影响。
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你遇到的问题是,使用SSIM算法来判断图片相似,但是由于图片的明暗差异,导致结果不准确。特别是你遇到的情况,一个样本是正常的,另一个样本是反色的,且新图片的光亮度较高。
一种解决方法是,使用灰度化处理来减少明暗差异的影响。灰度化可以将图片转换为灰度图像,从而忽略颜色信息,仅考虑图像的灰度信息。
在 Python 中,你可以使用 OpenCV 库来实现灰度化处理:
import cv2
# 读取图片
img1 = cv2.imread('img1.jpg')
img2 = cv2.imread('img2.jpg')
new_img = cv2.imread('new_img.jpg')
# 灰度化处理
gray_img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray_img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
gray_new_img = cv2.cvtColor(new_img, cv2.COLOR_BGR2GRAY)
# 计算SSIM
ssim1 = cv2.SSIM(gray_img1, gray_img2)
ssim2 = cv2.SSIM(gray_new_img, gray_img1)
在上面的代码中,我们使用 cvtColor 函数将图片转换为灰度图像,然后使用 SSIM 函数计算灰度图像之间的相似度。
另外,你也可以使用其他方法来减少明暗差异的影响,例如:
这些方法可以单独使用,也可以组合使用以获得更好的结果。