最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用python實現(xiàn)對比兩張圖片的不同

 更新時間:2018年02月05日 11:11:48   作者:botoo  
這篇文章主要介紹了用python實現(xiàn)對比兩張圖片的不同的相關資料,需要的朋友可以參考下

from PIL import Image
from PIL import ImageChops 
def compare_images(path_one, path_two, diff_save_location):
  """
  比較圖片,如果有不同則生成展示不同的圖片
  @參數(shù)一: path_one: 第一張圖片的路徑
  @參數(shù)二: path_two: 第二張圖片的路徑
  @參數(shù)三: diff_save_location: 不同圖的保存路徑
  """
  image_one = Image.open(path_one)
  image_two = Image.open(path_two)
  try: 
    diff = ImageChops.difference(image_one, image_two)
    if diff.getbbox() is None:
    # 圖片間沒有任何不同則直接退出
      print("【+】We are the same!")
    else:
      diff.save(diff_save_location)
  except ValueError as e:
    text = ("表示圖片大小和box對應的寬度不一致,參考API說明:Pastes another image into this image."
        "The box argument is either a 2-tuple giving the upper left corner, a 4-tuple defining the left, upper, "
        "right, and lower pixel coordinate, or None (same as (0, 0)). If a 4-tuple is given, the size of the pasted "
        "image must match the size of the region.使用2緯的box避免上述問題")
    print("【{0}】{1}".format(e,text))
if __name__ == '__main__':
  compare_images('1.png',
          '2.png',
          '我們不一樣.png')

執(zhí)行結果:

第二種方法:

from PIL import Image
import math
import operator
from functools import reduce
def image_contrast(img1, img2):
  image1 = Image.open(img1)
  image2 = Image.open(img2)
  h1 = image1.histogram()
  h2 = image2.histogram()
  result = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2, h1, h2)))/len(h1) )
  return result
if __name__ == '__main__':
  img1 = "./1.png" # 指定圖片路徑
  img2 = "./2.png"
  result = image_contrast(img1,img2)
  print(result)

如果兩張圖片完全相等,則返回結果為浮點類型“0.0”,如果不相同則返回結果值越大。

同樣用上面兩張圖片,執(zhí)行結果為38,還是比較小的:

這樣就可以在自動化測試用例中調用該方法來斷言執(zhí)行結果。

關于Pillow庫的詳細文檔:

http://pillow.readthedocs.org/en/latest/index.html

總結

以上所述是小編給大家介紹的用python實現(xiàn)對比兩張圖片的不同,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 導入tensorflow:ImportError: libcublas.so.9.0 報錯

    導入tensorflow:ImportError: libcublas.so.9.0 報錯

    這篇文章主要介紹了導入tensorflow:ImportError: libcublas.so.9.0 報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 深入詳解Python中生成器的原理與應用

    深入詳解Python中生成器的原理與應用

    生成器 是Python中一種非常實用的特性,它能幫助我們編寫高效的代碼,本文將詳細為大家介紹生成器的原理、用法以及實際應用場景,有需要的小伙伴可以了解下
    2023-12-12
  • 詳解如何將python3.6軟件的py文件打包成exe程序

    詳解如何將python3.6軟件的py文件打包成exe程序

    這篇文章主要介紹了詳解如何將python3.6軟件的py文件打包成exe程序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • python字符串替換re.sub()方法解析

    python字符串替換re.sub()方法解析

    這篇文章主要介紹了python字符串替換re.sub()方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 基于Python共軛梯度法與最速下降法之間的對比

    基于Python共軛梯度法與最速下降法之間的對比

    這篇文章主要介紹了基于Python共軛梯度法與最速下降法之間的對比,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python讀取excel文件中帶公式的值的實現(xiàn)

    Python讀取excel文件中帶公式的值的實現(xiàn)

    這篇文章主要介紹了Python讀取excel文件中帶公式的值的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Jupyter安裝拓展nbextensions及解決官網(wǎng)下載慢的問題

    Jupyter安裝拓展nbextensions及解決官網(wǎng)下載慢的問題

    這篇文章主要介紹了Jupyter安裝拓展nbextensions及解決官網(wǎng)下載慢的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Python網(wǎng)絡編程之socket與socketserver

    Python網(wǎng)絡編程之socket與socketserver

    這篇文章介紹了Python網(wǎng)絡編程之socket與socketserver,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 75條笑死人的知乎神回復,用60行代碼就爬完了

    75條笑死人的知乎神回復,用60行代碼就爬完了

    這篇文章主要介紹了python爬取知乎回復,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 基于Pydantic封裝的通用模型在API請求驗證中的應用詳解

    基于Pydantic封裝的通用模型在API請求驗證中的應用詳解

    這篇文章主要介紹了基于Pydantic封裝的通用模型在API請求驗證中的應用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2023-05-05

最新評論

玉树县| 桦甸市| 宁波市| 上林县| 上高县| 偏关县| 舞钢市| 红原县| 英吉沙县| 深水埗区| 榆林市| 吉林市| 永兴县| 兴安县| 庆城县| 新民市| 方山县| 泽州县| 图片| 宁武县| 南安市| 盐亭县| 湟源县| 丰镇市| 凤山市| 镇安县| 南宫市| 温宿县| 通江县| 都昌县| 昌图县| 通州区| 石阡县| 珠海市| 黄梅县| 阜阳市| 祁门县| 乐东| 永顺县| 杨浦区| 阜阳市|