python实现图片筛选程序

yipeiwu_com6年前Python基础

今天因工作需要写了个小程序,用于在图片集中自动抽取需要的照片。该程序只是实现了基本功能,还有很多需要完善的地方,展示出来算是给自己鼓鼓气吧。

该程序应用有一定特殊条件,因我选择的图片集是工业生产过程中自动拍摄生成的,因而其文件名很有规律,所以便于操作。

程序使用说明:

1. 需要Python编辑器来运行该程序, 而且需要将程序文件和需要的几个文件夹和.csv文件放在同一目录下,这样运行速度比较快

2. 文件夹original_el 用于存放所有原始图片集,picked_el 用于存放找到的图片, sn.csv文件用于存放需要查找图片的名称

程序如下:

#_*_coding:utf-8_*_
'''
Version V17.1.0
Date 2017-10-15
@Author Cheney
'''

# 收集EL 图片集中需要的图片,在elpick目录下进行

from PIL import Image
import csv
import os


# 获取需要图片的文件名
def readImageName():
  # 在elpick目录下读取sn.scv文件,该文件读取出来后元素是list 需要转换为str
  get_csv = csv.reader(open("elpick/sn.csv"))
  origSN = []
  transSN = []
  for sn in get_csv:
    origSN.append(sn)
  tempList = origSN

  # 读取csv文件获时获取到的列表,其元素也是列表,需要将其转换为字符串元素,使用下面for语句实现
  for s in tempList:
    # 去掉列表元素中的[''] 这几个字符
     s = str(s).strip('[\'')
    s = str(s).strip('\']')
  transSN.append(s)
  ImageName = transSN
  return ImageName

pickImageName = readImageName()
# 遍历所有图片集的文件名
for image in os.listdir("elpick/original_el"):
  # 将读取到的文件名进行处理,去扩展名,若是int文件名需要对文件名进行int 处理
  imageName = image.strip(".jpg")

  # 比较判断 若遍历的文件名在需要收集的列表中,读取之后并保存到pick_el文件夹下
  if imageName in pickImageName:
    pickImage = Image.open(('elpick/original_el/%s.jpg') % imageName)
    pickImage.save(("elpick/picked_el/%s.jpg") % imageName)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python将8位的图片转为24位的图片实现方法

Python将8位的图片转为24位的图片实现方法

用的pytorch来训练deeplabv3+ 在做deeplabv3+的过程中,我的训练图片是8位的,如下图: 8位的: 24位的: 这样虽然在训练过程中能够正常训练。但是在评估过程...

Python subprocess模块功能与常见用法实例详解

Python subprocess模块功能与常见用法实例详解

本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下: 一、简介 subprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连...

详解Python计算机视觉 图像扭曲(仿射扭曲)

详解Python计算机视觉 图像扭曲(仿射扭曲)

对图像块应用仿射变换,我们将其称为图像扭曲(或者仿射扭曲)。该操作不仅经常应用在计算机图形学中,而且经常出现在计算机视觉算法中。 一、仿射变换原理 仿射变换能够保持图像的“平直性”,包括...

Python3安装psycopy2以及遇到问题解决方法

Python3安装psycopy2以及遇到问题解决方法

事先在网上搜索了一大圈,头都大了,看到那么多文章写道在python里安装psycopg2的各种坑和各种麻烦,各种不成功。搜索了一下午,索性外出放松。晚饭后,又继续上psycopg2官网(...

windows下安装Python虚拟环境virtualenvwrapper-win

1、安装 执行命令 pip install virtualenv 为了使用virtualenv更方便,可以借助 virtualenvwrapper 执行命令 pip install vi...