标签分类
技术文章
当前位置:主页 > 计算机编程 > python > python批量图片处理

python如何进行批量图片处理

  • 发布时间:
  • 作者:码农之家原创
  • 点击:161

python批量图片处理

这篇文章主要知识点是关于python,批量,图片处理,python批量图片处理,python批量修改图片大小的方法 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python深度学习
  • 类型:Python大小:19.1 MB格式:PDF出版:人民邮电出版社作者:弗朗索瓦
立即下载
我的Python世界(Minecraft我的世界)
  • 类型:Python编程大小:73 MB格式:PDF出版:人民邮电出版社作者:程晨
立即下载

更多相关的学习资源可以参阅 程序设计电子书Python电子书Python视频、等栏目。

本文实例讲述了python批量图片处理。分享给大家供大家参考,具体如下:

#!/usr/bin/python
#coding:utf-8
import os
from PIL import Image
#源目录
MyPath = 'C:/Users/Eric/Desktop/python_text/20161214/test_Image/'
#输出目录
OutPath = 'C:/Users/Eric/Desktop/python_text/20161214/outpath/'
def processImage(filesoure, destsoure, name, imgtype):
  '''
  filesoure是存放待转换图片的目录
  destsoure是存在输出转换后图片的目录
  name是文件名
  imgtype是文件类型
  '''
  imgtype = 'jpeg' if imgtype == '.jpg' else 'png'
  #打开图片
  im = Image.open(filesoure + name)
  #缩放比例
  rate =max(im.size[0]/640.0 if im.size[0] > 60 else 0, im.size[1]/1136.0 if im.size[1] > 1136 else 0)
  if rate:
    im.thumbnail((im.size[0]/rate, im.size[1]/rate))
  im.save(destsoure + name, imgtype)
def run():
  #切换到源目录,遍历源目录下所有图片
  os.chdir(MyPath)
  for i in os.listdir(os.getcwd()):
    #检查后缀
    postfix = os.path.splitext(i)[1]
    if postfix == '.jpg' or postfix == '.png':
      processImage(MyPath, OutPath, i, postfix)
if __name__ == '__main__':
  run()

希望本文所述对大家Python程序设计有所帮助。

python批量修改图片大小的方法

本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下

引用的模块

from PIL import Image

Image的使用

def resize_image(img_path):
  try:
    mPath, ext = os.path.splitext(img_path)
    if astrcmp(ext, ".png") or astrcmp(ext, ".jpg"):
      img = Image.open(img_path)
      (width, height) = img.size

      if width != new_width:
        new_height = int(height * new_width / width)
        out = img.resize((new_width, new_height), Image.ANTIALIAS)
        new_file_name = '%s%s' % (mPath, ext)
        out.save(new_file_name, quality=100)
        Py_Log("图片尺寸修改为:" + str(new_width))
      else:
        Py_Log("图片尺寸正确,未修改")
    else:
      Py_Log("非图片格式")
  except Exception, e:
    print e

def printFile(dirPath):
  print "file: " + dirPath
  resize_image(dirPath)
  return True

引用

if __name__ == '__main__':
  path = "E:\pp\icon_setting.png"
  new_width = 50
  try:
    b = printFile(path)
    Py_Log("\r\n     **********\r\n" + "*********图片处理完毕*********" + "\r\n     **********\r\n")
  except:
    print "Unexpected error:", sys.exc_info()

上述是修改单一的图片,若要批量修改文件夹下的所有图片,则要使用循环,在上面基础添加 例如:

def BFS_Dir(dirPath, dirCallback=None, fileCallback=None):
  queue = []
  ret = []
  queue.append(dirPath);
  while len(queue) > 0:
    tmp = queue.pop(0)
    if os.path.isdir(tmp):
      ret.append(tmp)
      for item in os.listdir(tmp):
        queue.append(os.path.join(tmp, item))
      if dirCallback:
        dirCallback(tmp)
    elif os.path.isfile(tmp):
      ret.append(tmp)
      if fileCallback:
        fileCallback(tmp)
  return ret

第一个参数为图片的目录路径,第二个参数是(目录路劲的回掉方法),第三个参数是图片处理回掉方法

源代码参考:Python_Tool

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到vue项目中使用md5加密以及、 儿童python编程入门书籍推、 解决axios.interceptors.respon、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:python虚拟环境部署步骤教学

下一篇:TensorFlow在windows上安装与简单实例讲解

展开 +

收起 -

学习笔记
网友NO.317858

python批量识别图片指定区域文字内容

Python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根据坐标剪切出指定位置图片,也就是所需的内容区域 4.对指定位置图片进行ocr识别 环境 Ubuntu18.04 Python2.7 所需Python模块 1.aircv 用于识别模板再原始图的位置坐标 pip install aircv 2.Pillow 用于剪裁图片 pip install Pillow 3.Tesseract 文字识别 在此也可以用平台端的API进行更精准的识别 ubuntu下Tesseract环境安装 sudo apt-get install libpng12-dev sudo apt-get install libjpeg62-dev sudo apt-get install libtiff4-dev sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install automake 1.tesseract-ocr安装 sudo apt-get install tesseract-ocr 2.pytesseract安装 pip install pytesseract Python代码 识别对应位置 #!/usr/bin/python2.7 # -*- coding: utf-8 -*- import aircvdef matchImg(imgsrc, imgobj, confidence=0.2): """ 图片对比识别imgobj在imgsrc上的相对位置(批量识别统一图片中需要的部分) :param imgsrc: 原始图片路径(str) :param imgobj: 待查找图片路径(模板)(str) :param confidence: 识别度(0confidence1.0) :return: None or dict({'confidence': 相似度(float), 'rectangle': 原始图片上的矩形坐标(tuple), 'result': 中心坐标(tuple)}) """ imsrc = aircv.imread(imgsrc) imobj =……

网友NO.721881

python批量修改图片大小的方法

本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下 引用的模块 from PIL import Image Image的使用 def resize_image(img_path): try: mPath, ext = os.path.splitext(img_path) if astrcmp(ext, ".png") or astrcmp(ext, ".jpg"): img = Image.open(img_path) (width, height) = img.size if width != new_width: new_height = int(height * new_width / width) out = img.resize((new_width, new_height), Image.ANTIALIAS) new_file_name = '%s%s' % (mPath, ext) out.save(new_file_name, quality=100) Py_Log("图片尺寸修改为:" + str(new_width)) else: Py_Log("图片尺寸正确,未修改") else: Py_Log("非图片格式") except Exception, e: print edef printFile(dirPath): print "file: " + dirPath resize_image(dirPath) return True 引用 if __name__ == '__main__': path = "E:\pp\icon_setting.png" new_width = 50 try: b = printFile(path) Py_Log("\r\n **********\r\n" + "*********图片处理完毕*********" + "\r\n **********\r\n") except: print "Unexpected error:", sys.exc_info() 上述是修改单一的图片,若要批量修改文件夹下的所有图片,则要使用循环,在上面基础添加 例如: def BFS_Dir(dirPath, dirCallback=None, fileCallback=None): queue = [] ret = [] queue.append(dirPath); while len(queue) 0: tmp = queue.pop(0) if os.path.isdir(tmp): ret.append(tmp) for item in os.listdir(tmp): queue.append(os.path.join(tmp, item)) if dirCallback: dirCallback(tmp) elif os.path.isfile(tmp): ret.append(tmp) if fi……

网友NO.615835

对python cv2批量灰度图片并保存的实例讲解

如下所示: import cv2#循环灰度图片并保存def grayImg(): for x in range(1,38): #读取图片 img = cv2.imread("C:\\Users\\lyl\\Desktop\\new_dahuoji\\img2\\{}.jpg".format(str(x))) GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #保存灰度后的新图片 cv2.imwrite("C:\\Users\\lyl\\Desktop\\1\\myProject\\pictures\\dataset2\\dahuomiao\\{}.jpg".format(str(x)),GrayImage)grayImg() 以上这篇对python cv2批量灰度图片并保存的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明