好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用python如何刪除同一文件夾下相似的圖片

使用python如何刪除同一文件夾下相似的圖片

熱門標簽:幫人做地圖標注收費算詐騙嗎 電信營業廳400電話申請 悟空智電銷機器人6 外呼不封號系統 江蘇房產電銷機器人廠家 溫州旅游地圖標注 蘇州電銷機器人十大排行榜 遼寧400電話辦理多少錢 荊州云電銷機器人供應商

前言

最近整理圖片發現,好多圖片都非常相似,于是寫如下代碼去刪除,有兩種方法:

注:第一種方法只對于連續圖片(例一個視頻里截下的圖片)準確率也較高,其效率高;第二種方法準確率高,但效率低

方法一:相鄰兩個文件比較相似度,相似就把第二個加到新列表里,然后進行新列表去重,統一刪除。

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

代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
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)

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

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

代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
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如何刪除同一文件夾下相似圖片的文章就介紹到這了,更多相關python刪除文件夾相似圖片內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python對130w+張圖片檢索的實現方法
  • 利用Python實現簡單的相似圖片搜索的教程
  • 如何利用Python識別圖片中的文字詳解
  • Python圖片處理之圖片裁剪教程
  • Python批量圖片去水印的方法
  • python 爬取英雄聯盟皮膚圖片
  • python生成器generator:深度學習讀取batch圖片的操作
  • python opencv通過按鍵采集圖片源碼
  • Python如何生成隨機高斯模糊圖片詳解
  • Python基于Opencv識別兩張相似圖片
  • Python圖片檢索之以圖搜圖

標簽:黃山 濟南 欽州 宿遷 景德鎮 三沙 臺灣 喀什

巨人網絡通訊聲明:本文標題《使用python如何刪除同一文件夾下相似的圖片》,本文關鍵詞  使用,python,如何,刪除,同一,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用python如何刪除同一文件夾下相似的圖片》相關的同類信息!
  • 本頁收集關于使用python如何刪除同一文件夾下相似的圖片的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 和亲女在客厅乱婬小说最新章节| 性欧美video另类hd高清| 日本少妇极品熟妇人妻| 潘金莲一级婬片AAAAAA播放| 性感美女床戏| 秘?羞羞视频观看免费版| 91丨PORNY丨老熟女| 国产成人国产在线观看入口| 免费一级毛片不卡不收费| 国产热门精品福利片| THEWHITEBOX精选黑与白| 巨黑巨粗巨硬巨大的黑吊| 黄色大片在线观看| 老师你多久没做了爱了| 与亲生子伦怀孕小说| 欧美18一19ⅩXX| 伦理年轻漂亮的岳?| 欧美a欧美1级| 肛门口摸到个软软的肉要紧嘛| JiZZ成熟丰满韩国在线观看| 68堂AV无码一区二区三区| 恋老old300| 李丽莎超大尺度视频| 邻居丰满的奶水在线HD| 花垣县| 亚洲精品国产手机| ??真人抽搐一进一出视频| 双性被室友灌满精H男男视频| 欧美同房免姿势108费视频| 快穿之诱受肉h校园| 绯色aV人妻一区二区三区浪潮| 久久久久久国产一级毛片高清版| 女上男下人xx动态图lovefou| 淫虎网| 日韩欧美精品一区二区三区无码 | 国产a高清| 校草家的小可爱又软又甜| 99精品国产第一福利网站| h动漫无码亚洲欧洲一区不卡| wwwa级片| 日日摸夜夜嗷嗷叫日日拍|