记录一下以前看到的图像相似度算法

代码如下:部分包没用到,可以删除(当时用的python2)

# coding:utf-8
from PIL import Image
from PIL import ImageGrab
from gevent.hub import sleep
from pymouse import PyMouse
import pyHook
import threading
import os
import win32gui
import win32con
import win32api
import pythoncom

def crops(img_file):
    img = Image.open(img_file)
    img = img.resize((200, 200)).convert('RGB')
    n = 1  # split into n x n pieces
    imgs = []
    unit = 200 / n
    for i in range(n):
        for j in range(n):
            chip = img.crop((j * unit, i * unit, (j + 1) * unit, (i + 1) * unit))
            imgs.append(chip.histogram())
    return imgs


def compare(list1, list2):
    count = 0.0
    for i in range(len(list1)):
        if (max(list1[i], list2[i]) != 0):
            temp = 1 - (abs(list1[i] - list2[i]) + 0.0) / max(list1[i], list2[i])
        else:
            temp = 1
        count = count + temp
    count = count / len(list1)
    return count


def compares(images1, images2):
    count = 0
    for i in range(len(images1)):
        count = count + compare(images1[i], images2[i])
    count = count / len(images1)
    return count


def get_files():
    filelist = []
    for root, dirs, files in os.walk(path + "imgs"):
        for fn in files:
            filelist.append(path + "imgs\\" + fn)
    return filelist

posted @ 2020-10-14 08:52  wunai006  阅读(113)  评论(0)    收藏  举报