zoukankan      html  css  js  c++  java
  • python opencv图像不同帧的相似度以及帧间差分计算

    import matplotlib.pyplot as plt
    import cv2
    import numpy as np
    import os
    import pandas as pd
    import time

    start = time.process_time()
    inputs1 = './inputs1'
    inputs2 = './inputs2'
    path0 = './txt-out'
    if not os.path.exists(path0):
    os.mkdir(path0)
    path1 = './Last-Result'
    if not os.path.exists(path1):
    os.mkdir(path1)

    f0 = open('./txt-out/chi-square.txt','w+')
    f1 = open('./txt-out/correlation.txt','w+')
    f2 = open('./txt-out/pasteur.txt','w+')
    filepath1 = './inputs1'
    filepath2 = './inputs2'
    pathDir1 = os.listdir(filepath1)
    pathDir1.sort(key=lambda x: int(x.split('-')[0]))
    pathDir2 = os.listdir(filepath2)
    pathDir2.sort(key=lambda x: int(x.split('-')[0]))

    for allDir1,allDir2 in zip(pathDir1,pathDir2):
    picpath1 = r'./inputs1/' + allDir1
    picpath2 = r'./inputs2/' + allDir2
    img1 = cv2.imdecode(np.fromfile(picpath1, dtype=np.uint8), 1)
    img2 = cv2.imdecode(np.fromfile(picpath2, dtype=np.uint8), 0)
    H1 = cv2.calcHist([img1], [0], None, [256],[0,256])
    H1 = cv2.normalize(H1, H1, 0, 1, cv2.NORM_MINMAX, -1) # 对图片进行归一化处理
    H2 = cv2.calcHist([img2], [0], None, [256],[0,256])
    H2 = cv2.normalize(H2, H2, 0, 1, cv2.NORM_MINMAX, -1)
    similarity0 = cv2.compareHist(H1, H2,cv2.HISTCMP_CHISQR) # 卡方检验
    similarity1 = cv2.compareHist(H1, H2,cv2.HISTCMP_CORREL) # 相关性
    similarity2 = cv2.compareHist(H1, H2,cv2.HISTCMP_BHATTACHARYYA) # 巴氏距离
    print('当前正在计算:'+allDir1+'—— VS ——'+allDir2+' '+'请稍等……………')
    '''
    plt.subplot(2, 1,1)
    plt.plot(H1)
    plt.subplot(2,1,2)
    plt.plot(H2)
    plt.show()
    '''
    print(allDir1 + "--Vs--"+allDir2+':',similarity0,file = f0)
    print(allDir1 + "--Vs--"+allDir2+':',similarity1,file = f1)
    print(allDir1 + "--Vs--"+allDir2+':',similarity2,file = f2)
    f0.close()
    f1.close()
    f2.close()

    print(' ',' ','计算完成!')
    file0 = open('. xt-outchi-square.txt', 'r')
    df = file0.read().split(' ')

    print(df,' ')

    df0 = pd.DataFrame(df,columns=['Compare-Name'])
    dt = df0['Compare-Name'].str.split(':',expand=True)
    df0[['Compare-Name','chi-square']]=dt # 设置列名
    df0['chi-square'] = df0['chi-square'].astype(np.float)

    df0['Photoes'] = df0['Photoes'].astype('object')

    df0.to_excel('./Last-Result/Chi-square-Result.xls','卡方性',index = False)
    end = time.process_time()

    print(' ','卡方性处理完成,请移步------→ Last-Result( Chi-square-Result.xls )中查看结果')
    print('卡方性计算耗费时间: %s Seconds'%(end-start))

    相似度

    file1 = open('. xt-outcorrelation.txt', 'r')
    df1 = file1.read().split(' ')

    print(df1,' ')

    df1 = pd.DataFrame(df1,columns=['Compare-Name'])
    dt1 = df1['Compare-Name'].str.split(':',expand=True)
    df1[['Compare-Name','correlation']]=dt1 # 设置列名
    df1['correlation'] = df1['correlation'].astype(np.float)

    df0['Photoes'] = df0['Photoes'].astype('object')

    df1.to_excel('./Last-Result/correlation-Result.xls','相似度',index = False)
    end = time.process_time()

    print(' ','相似度处理完成,请移步------→ Last-Result( correlation-Result.xls )中查看结果')
    print('相似度计算耗费时间: %s Seconds'%(end-start))

    巴氏距离

    file2 = open('. xt-outpasteur.txt', 'r')
    df2 = file2.read().split(' ')

    print(df2,' ')

    df2 = pd.DataFrame(df2,columns=['Compare-Name'])
    dt2 = df2['Compare-Name'].str.split(':',expand=True)
    df2[['Compare-Name','pasteur']]=dt2 # 设置列名
    df2['pasteur'] = df2['pasteur'].astype(np.float)

    df0['Photoes'] = df0['Photoes'].astype('object')

    df2.to_excel('./Last-Result/pasteur-Result.xls','巴氏距离',index = False)
    end = time.process_time()

    print(' ','巴氏距离处理完成,请移步------→ Last-Result( pasteur-Result.xls )中查看结果')
    print('巴氏距离计算耗费时间: %s Seconds'%(end-start))

  • 相关阅读:
    链接、装载与库
    mysql 调用外部程序
    SAMBA 共享服务器搭建
    Django 部署
    python基础教程1
    django 文件上传
    Django URLconf
    django view
    admin site
    django book
  • 原文地址:https://www.cnblogs.com/Tdazheng/p/13608797.html
Copyright © 2011-2022 走看看