当对一批图片进行处理时,有如下方法:

循环进行处理

调用程序自带的图片集合来处理

图片集合函数为:

skimage.io.ImageCollection(load_pattern, load_func=None)

该函数在io模块中,带两个参数

load_pattern, 图片组的路径,可是是一个str字符串

load_func, 是一个回调函数,对图片进行批量处理就可以通过这个回调函数实现,默认回调函数是 imread(), 即默认这个函数是批量读取图片

图片批量处理例子

例如:

import skimage.io as io

from skimage import data_dir

str = data_dir + '/*.png'

coll = io.ImageCollection(str)

print(len(coll))

输出为

27

表示系统自带了27张图片,通过ImageCollection接口读取出来,放在图片集合coll变量中,若要显示其中一张图片,使用如下代码

io.imshow(coll[20])

io.show()

显示结果如下

当要把不同格式的图片,例如既有jpg格式图片,又有png格式图片,全部读取出来的方法如下

import skimage.io as io

from skimage import data_dir

str='d:/pic/*.jpg:d:/pic/*.png'

coll = io.ImageCollection(str)

print(len(coll))

注意:

这个地方’d:/pic/.jpg:d:/pic/.png’ ,是两个字符串合在一起的,第一个是’d:/pic/.jpg’, 第二个是’d:/pic/.png’ ,合在一起后,中间用冒号(:) 来隔开, 这样就可以把d:/pic/文件夹下的jpg和png格式的图片都读取出来。如果还想读取存放在其它地方的图片,也可以一并加进去,只是中间同样用冒号来隔开。

io.ImageCollection()这个函数省略第二个参数,就是批量读取。如果我们不是想批量读取,而是其它批量操作,如批量转换为灰度图,那就需要先 定义一个函数,然后将这个函数作为第二个参数,如:

from skimage import data_dir,io,color

def convert_gray(f):

rgb=io.imread(f)

return color.rgb2gray(rgb)

str=data_dir+'/*.png'

coll = io.ImageCollection(str,load_func=convert_gray)

io.imshow(coll[20])

io.show()

输出为:

批量处理对于视频处理来说非常有用,因为视频就是一系列的图片组成

from skimage import data_dir,io,color

class AVILoader:

video_file = 'myvideo.avi'

def __call__(self, frame):

return video_read(self.video_file, frame)

avi_load = AVILoader()

frames = range(0, 1000, 10) # 0, 10, 20, ...

ic =io.ImageCollection(frames, load_func=avi_load)

myvideo.avi这个视频中每隔10帧的图片读取出来,放在图片集合中。

得到图片集合以后,我们还可以将这些图片连接起来,构成一个维度更高的数组,连接图片的函数为:

skimage.io.concatenate_images(ic)

带一个参数,就是以上的图片集合,如:

from skimage import data_dir,io,color

coll = io.ImageCollection('d:/pic/*.jpg')

mat=io.concatenate_images(coll)

使用concatenate_images(ic)函数的前提是读取的这些图片尺寸必须一致,否则会出错。我们看看图片连接前后的维度变化:

from skimage import data_dir,io,color

coll = io.ImageCollection('d:/pic/*.jpg')

print(len(coll)) #连接的图片数量

print(coll[0].shape) #连接前的图片尺寸,所有的都一样

mat=io.concatenate_images(coll)

print(mat.shape) #连接后的数组尺寸

显示结果:

2

(870, 580, 3)

(2, 870, 580, 3)

可以看到,将2个3维数组,连接成了一个4维数组

如果我们对图片进行批量操作后,想把操作后的结果保存起来,也是可以办到的。

例:把系统自带的所有png示例图片,全部转换成256*256的jpg格式灰度图,保存在d:/data/文件夹下

改变图片的大小,我们可以使用tranform模块的resize()函数,后续会讲到这个模块。

from skimage import data_dir,io,transform,color

import numpy as np

def convert_gray(f):

rgb=io.imread(f) #依次读取rgb图片

gray=color.rgb2gray(rgb) #将rgb图片转换成灰度图

dst=transform.resize(gray,(256,256)) #将灰度图片大小转换为256*256

return dst

str=data_dir+'/*.png'

coll = io.ImageCollection(str,load_func=convert_gray)

for i in range(len(coll)):

io.imsave('/home/wxer/pic/'+np.str(i)+'.jpg',coll[i]) #循环保存图片

保存的图片结果如下

参考

python批量图像处理_python图像处理(4)之图像批量处理相关推荐

  1. python图合并_Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

    本文实例讲述了Python图像处理实现两幅图像合成一幅图像的方法.分享给大家供大家参考,具体如下: 将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅 ...

  2. python批量生成图片_python图像处理-批量生成纯色图片

    前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 上一 ...

  3. python 图片锐化_Python图像处理介绍--图像模糊与锐化

    欢迎关注 "小白玩转Python",发现更多 "有趣" 引言 在之前的文章中,我们讨论了边缘检测内核.在本文我们将讨论如何在图像上应用模糊与锐化内核,将这些内核 ...

  4. python图像识别系统_Python图像处理之图片文字识别功能(OCR)

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  5. python离散余弦变换_Python图像处理 —— DCT变换

    图像的DCT变换 python实现 这里去除了图像的低频部分,进行dct变换后得到图像的骨架 import cv2 import numpy as np # 读取图像 img = cv2.imread ...

  6. python语言头像_python图像处理-个性化头像

    前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 前言 ...

  7. python自动拼图_Python图像处理——人物拼图游戏

    开发工具:pycharm 游戏介绍: 拼图游戏将一幅图片分割咸若干拼块并将它们随机打乱顺序,当将所有拼块都放回原位置时,就完成了拼图(游戏结束).本人物拼图游戏为3行3列,拼块以随机顺序排列,玩家用鼠 ...

  8. python 艺术照片滤镜_python图像处理-滤镜处理

    前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 前言 ...

  9. 什么叫做形态学图像处理_Python图像处理膨胀与腐蚀

    欢迎关注 "小白玩转Python",发现更多 "有趣" 引言 膨胀与腐蚀是图像处理中两种最基本的形态学操作,膨胀将目标点融合到背景中,向外部扩展,腐蚀与膨胀意义 ...

最新文章

  1. 回归方程的拟合优度检验_计量经济学第四讲(多元线性回归模型:基本假定,参数估计,统计检验)...
  2. texmaker不能点击跳转到行
  3. 【嵌入式开发】用 VLC 显示 树莓派摄像头 H264 裸流
  4. Sightseeing Cows POJ - 3621
  5. Java13的API_JAVA基础--JAVA API常见对象(其他API)13
  6. 卷积为什么如此强大?理解深度学习中的卷积
  7. codeforces Round #320 (Div. 2) C. A Problem about Polyline(数学) D. Or Game(暴力,数学)
  8. python_环境测试
  9. 评分卡模型开发(五)--定性指标筛选
  10. python学生管理系统gui版好例子网_python界面版学生管理系统 相关实例(示例源码)下载 - 好例子网...
  11. django登录验证码操作
  12. 【Java与智能设备】Ch0402 Activity的生命周期
  13. 啊哈算法(pdf免积分下载)
  14. Scrum敏捷开发模式介绍与实践
  15. 吞剑!喷火!这种江湖卖艺套路能吸引观众吗?
  16. [原创]网上一位叫啊松得网友提供,本人搜集!!
  17. 2021-06-05 高效的wms仓储管理系统是关键
  18. Java校招面经_校招面经:阿里天猫Java后台开发面试历程
  19. [c++]c++程序设计-Y.Daniel.Liang 笔记
  20. nxp的wifi驱动调试

热门文章

  1. 安卓结构能转换成苹果借口吗_别错过!这可能是苹果近几年最精彩的发布会了...
  2. Excel—使用if(countif())表达式来筛选两个表格中相同的数据
  3. 非常规的自我实现——听陆向谦讲创业
  4. QQ互联开发者认证一直审核未通过的原因
  5. oracle OCP考点在哪,Oracle OCP认证考哪几门
  6. 东周列国志美文摘录-晏平仲巧辩服荆蛮
  7. item_search_img - 按图搜索义乌购商品(拍立淘)
  8. long journey android,人类一败涂地感染模式mod
  9. 大学计算机实验五实验六实验报告表,北京理工大学计算机实验六
  10. 史上最全最新微信小程序自动化教程