Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查python中两个图像之间的差异_Python - Fatal编程技术网

检查python中两个图像之间的差异

检查python中两个图像之间的差异,python,Python,最近我开始开发一个WebViewer,基本上是WebTeamViewer。我正在用python编写后端。现在我到达了一个点,我只发送图像之间的像素差异,而不是使用PIL和FLASK发送整个图像。不幸的是,用双for循环检查两个二维数组之间的差异似乎不是最快的解决方案。我想知道是否有更快的解决方案,比如知道改变图像的事件的触发位置。这是我目前使用的代码。我希望得到任何有用的建议。在确认我的问题是重复的之后,我想强调一个事实,即我需要知道两幅图像之间的差异。我只是觉得检查整个矩阵中的差异是完全没有用

最近我开始开发一个WebViewer,基本上是WebTeamViewer。我正在用python编写后端。现在我到达了一个点,我只发送图像之间的像素差异,而不是使用PIL和FLASK发送整个图像。不幸的是,用双for循环检查两个二维数组之间的差异似乎不是最快的解决方案。我想知道是否有更快的解决方案,比如知道改变图像的事件的触发位置。这是我目前使用的代码。我希望得到任何有用的建议。在确认我的问题是重复的之后,我想强调一个事实,即我需要知道两幅图像之间的差异。我只是觉得检查整个矩阵中的差异是完全没有用的

global differences, img
img = ImageGrab.grab()
img = img.resize((int(img.width/2), int(img.height/2)), Image.ANTIALIAS)
b = img.load()
while True:     
    img1 = ImageGrab.grab()
    img1 = img1.resize((int(img1.width/2), int(img1.height/2)), Image.ANTIALIAS)
    c = img1.load()

    for i in range(0, img.width):
        for j in range(0, img.height):
            if b[i,j] != c[i,j]:
                foo = {
                    "i" : i,
                    "j" : j,
                    "val" : b[i,j]
                }
                differences.append(foo)
            b[i, j] = c[i, j]

可能的副本您当然想看看
numpy
@DYZ您能指定我应该看看numpy的哪个部分吗?我尝试了某种numpy方法,但使用它我得到了更长的运行时间/图像差异。将两个图像转换为numpy矩阵,获取差异,并找到非零元素的位置和值。可能的重复您当然想看看
numpy
@DYZ您能指定我应该查看的numpy的哪一部分吗?我尝试了某种numpy方法,但使用它我得到了更长的运行时间/图像差异。将两个图像转换为numpy矩阵,获取差异,并找到非零元素的位置和值。