这是我想要做的:
我每隔一段时间就用网络摄像头拍照。有点像是时间推移的东西。但是,如果没有什么真正的变化,也就是说,图片看起来几乎一样,我不想存储最新的快照。
我想有一些方法可以量化这种差异,我将不得不根据经验来确定一个阈值。
我追求的是简单而不是完美。我使用的是python。
发布于 2008-10-13 06:50:17
您可以使用PIL中的函数比较两个图像。
import Image
import ImageChops
im1 = Image.open("splash.png")
im2 = Image.open("splash2.png")
diff = ImageChops.difference(im2, im1)
diff对象是这样的图像,其中每个像素都是从第一图像中减去第二图像中该像素的颜色值的结果。使用diff图像,您可以做几件事。最简单的是diff.getbbox()
函数。它将告诉您包含两个图像之间的所有更改的最小矩形。
您可能也可以使用PIL中的函数来实现这里提到的其他内容的近似值。
发布于 2008-10-10 03:37:57
一件微不足道的小事:
将两个图像重新采样为小的缩略图(例如,64 x 64),并将缩略图逐个像素与某个阈值进行比较。如果原始图像几乎相同,则重新采样的缩略图将非常相似,甚至完全相同。此方法会处理可能出现的噪波,特别是在低光场景中。如果使用灰度效果,效果可能会更好。
发布于 2018-03-30 21:00:09
另一种很好的、简单的方法来测量两个图像之间的相似性:
import sys
from skimage.measure import compare_ssim
from skimage.transform import resize
from scipy.ndimage import imread
# get two images - resize both to 1024 x 1024
img_a = resize(imread(sys.argv[1]), (2**10, 2**10))
img_b = resize(imread(sys.argv[2]), (2**10, 2**10))
# score: {-1:1} measure of the structural similarity between the images
score, diff = compare_ssim(img_a, img_b, full=True)
print(score)
如果其他人对一种更强大的比较图像相似性的方法感兴趣,我把tutorial和web app放在一起,用Tensorflow测量和可视化相似的图像。
https://stackoverflow.com/questions/189943
复制相似问题