成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python中刪除相似圖片的方法

這篇文章主要介紹python中刪除相似圖片的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專業(yè)為企事業(yè)單位提供成都網(wǎng)站建設(shè)公司、成都網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化、微信開發(fā)、手機(jī)網(wǎng)站建設(shè)、域名申請雅安服務(wù)器托管、企業(yè)郵箱等互聯(lián)網(wǎng)基礎(chǔ)服務(wù)。從2013年創(chuàng)立,我們先后簽約上千余家中小型企業(yè)和科技發(fā)展公司的網(wǎng)站建設(shè)和網(wǎng)站推廣項(xiàng)目。通過多年的創(chuàng)新發(fā)展,已發(fā)展成為專業(yè)能力較強(qiáng),服務(wù)較好的建站公司。

方法一:相鄰兩個(gè)文件比較相似度,相似就把第二個(gè)加到新列表里,然后進(jìn)行新列表去重,統(tǒng)一刪除。

例如:有文件1-10,首先1和2相比較,若相似,則把2加入到新列表里,再接著2和3相比較,若不相似,則繼續(xù)進(jìn)行3和4比較...一直比到最后,然后刪除新列表里的圖片

代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/1/15 9:19
# @Author  : xiaodai
import os
import cv2
from skimage.measure import compare_ssim
# import shutil
# def yidong(filename1,filename2):
#     shutil.move(filename1,filename2)
def delete(filename1):
    os.remove(filename1)
if __name__ == '__main__':
    path = r'D:\camera_pic\test\rec_pic'
    # save_path_img = r'E:\0115_test\rec_pic'
    # os.makedirs(save_path_img, exist_ok=True)
    img_path = path
    imgs_n = []
    num = []
    img_files = [os.path.join(rootdir, file) for rootdir, _, files in os.walk(path) for file in files if
                 (file.endswith('.jpg'))]
    for currIndex, filename in enumerate(img_files):
        if not os.path.exists(img_files[currIndex]):
            print('not exist', img_files[currIndex])
            break
        img = cv2.imread(img_files[currIndex])
        img1 = cv2.imread(img_files[currIndex + 1])
        ssim = compare_ssim(img, img1, multichannel=True)
        if ssim > 0.9:
            imgs_n.append(img_files[currIndex + 1])
            print(img_files[currIndex], img_files[currIndex + 1], ssim)
        else:
            print('small_ssim',img_files[currIndex], img_files[currIndex + 1], ssim)
        currIndex += 1
        if currIndex >= len(img_files)-1:
            break
    for image in imgs_n:
        # yidong(image, save_path_img)
        delete(image)

方法二:逐個(gè)去比較,若相似,則從原來列表刪除,添加到新列表里,若不相似,則繼續(xù)

例如:有文件1-10,首先1和2相比較,若相似,則把2在原列表刪除同時(shí)加入到新列表里,再接著1和3相比較,若不相似,則繼續(xù)進(jìn)行1和4比較...一直比,到最后一個(gè),再繼續(xù),正常應(yīng)該再從2開始比較,但2被刪除了,所以從3開始,繼續(xù)之前的操作,最后把新列表里的刪除。

代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/1/16 12:03
# @Author  : xiaodai
import os
import cv2
from skimage.measure import compare_ssim
import shutil
import datetime
def yidong(filename1,filename2):
    shutil.move(filename1,filename2)
def delete(filename1):
    os.remove(filename1)
    print('real_time:',now_now-now)
if __name__ == '__main__':
    path = r'F:\temp\demo'
    # save_path_img = r'F:\temp\demo_save'
    # os.makedirs(save_path_img, exist_ok=True)
    for (root, dirs, files) in os.walk(path):
        for dirc in dirs:
            if dirc == 'rec_pic':
                pic_path = os.path.join(root, dirc)
                img_path = pic_path
                imgs_n = []
                num = []
                del_list = []
                img_files = [os.path.join(rootdir, file) for rootdir, _, files in os.walk(img_path) for file in files if
                             (file.endswith('.jpg'))]
                for currIndex, filename in enumerate(img_files):
                    if not os.path.exists(img_files[currIndex]):
                        print('not exist', img_files[currIndex])
                        break
                    new_cur = 0
                    for i in range(10000000):
                        currIndex1 =new_cur
                        if currIndex1 >= len(img_files) - currIndex - 1:
                            break
                        else:
                            size = os.path.getsize(img_files[currIndex1 + currIndex + 1])
                            if size < 512:
                                # delete(img_files[currIndex + 1])
                                del_list.append(img_files.pop(currIndex1 + currIndex + 1))
                            else:
                                img = cv2.imread(img_files[currIndex])
                                img = cv2.resize(img, (46, 46), interpolation=cv2.INTER_CUBIC)
                                img1 = cv2.imread(img_files[currIndex1 + currIndex + 1])
                                img1 = cv2.resize(img1, (46, 46), interpolation=cv2.INTER_CUBIC)
                                ssim = compare_ssim(img, img1, multichannel=True)
                                if ssim > 0.9:
                                    # imgs_n.append(img_files[currIndex + 1])
                                    print(img_files[currIndex], img_files[currIndex1 + currIndex + 1], ssim)
                                    del_list.append(img_files.pop(currIndex1 + currIndex + 1))
                                    new_cur = currIndex1
                                else:
                                    new_cur = currIndex1 + 1
                                    print('small_ssim',img_files[currIndex], img_files[currIndex1 + currIndex + 1], ssim)
                for image in del_list:
                    # yidong(image, save_path_img)
                    delete(image)
                    print('delete',image)

以上是python中刪除相似圖片的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:python中刪除相似圖片的方法
瀏覽路徑:http://jinyejixie.com/article14/gpidge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站網(wǎng)站維護(hù)、虛擬主機(jī)品牌網(wǎng)站設(shè)計(jì)、云服務(wù)器動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
鄱阳县| 淮安市| 达尔| 通河县| 泸水县| 怀远县| 五莲县| 纳雍县| 云南省| 盐源县| 鹤庆县| 罗定市| 东兰县| 永胜县| 西乡县| 南漳县| 岳阳市| 卢湾区| 吉林市| 柞水县| 合川市| 红桥区| 儋州市| 沁水县| 文山县| 灌云县| 察隅县| 岢岚县| 宝丰县| 盐津县| 专栏| 莱芜市| 普定县| 海淀区| 大田县| 门源| 开鲁县| 花垣县| 荆门市| 饶平县| 汝州市|