此篇文章主要是给大家介绍了python图像处理之图象的批量编辑实例详细解读,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,愿大家多多的发展,尽快涨薪
文章正文
有的时候,不仅需要对一张照片予以处理,可能也会对一大批照片处理。此刻,我们通过循环系统去执行解决,还可以启用程序流程带有的照片结合去处理。
照片结合函数公式
skimage.io.ImageCollection(load_pattern,load_func=None)
这一函数是放到io模块里的,带两个主要参数,第一位主要参数load_pattern,表示图片组的路线,能是一个str字符串。第2个主要参数load_func是1个调用函数,人们对图片开展批量编辑就可以用这一调用函数达到。调用函数默认设置为imread(),即默认设置这一函数是大批量读取图片。
先看这个事例:
import skimage.io as io from skimage import data_dir str=data_dir+'/*.png' coll=io.ImageCollection(str) print(len(coll))
显示结果为25,说明系统自带了25张png的示例图片,这些图片都读取了出来,放在图片集合coll里。如果我们想显示其中一张图片,则可以在后加上一行代码:
io.imshow(coll[10])
显示为
大批量载入
当一个文件夹里,我们不仅储放了一部分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和png格式的照片都载入出去。
如果想要载入存放其他地方的照片,还可以一同加上,仅仅正中间一样用灶具来分隔。
io.ImageCollection()这一函数公式省略第2个主要参数,就是大批量载入。假如我们并不是想大批量载入,反而是其他批量处理,如转换格式为灰度图像,这又应该怎么做呢?
转换格式为灰度图像
那么就需要先界定一个函数,再将这一函数公式做为第2个主要参数,如:
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[10])
这种批量操作对视频处理是极其有用的,因为视频就是一系列的图片组合
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('d:/data/'+np.str(i)+'.jpg',coll<i>)#循环保存图片
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128829.html
此篇文章主要是给大家介绍了Python办公系统批量编辑文档完成实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早工作上得到晋升。 前言 说起在工作上最让人头大的便是用这样的方法解决一大堆文件夹中文档,这其实并不难,但是却繁。因此当遇到脚踏式的操作过程中一定要注意应用Python来有效懒惰!这次我会以解决微博热搜榜数据信息来实例怎么使用Python批...
此篇文章主要是阐述了Pygame精准检测图象撞击,在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击,需用的小伙伴可以借鉴一下 在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击。 假定大家主要有两种图象(产品为...
此篇文章主要是阐述了Pygame精准检测图象撞击,在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击,需用的小伙伴可以借鉴一下。 在使用Pygame写游戏时,有些人可能遇到2个Rect目标撞击可是目标中间也有室内空间间距问题,这儿,将教给大家用一个方法准确地检验图象撞击。 假定大家主要有两种图象(为非...
文章主要是详细介绍了pythonopencv图像高通滤波和低通滤波器,此文经过案例编码为大家介绍得非常详尽,对大家学习培训和工作具有很强的参照参考意义,必须的小伙伴可以借鉴一下 序言 上一章大家反映了如何把图象机娘傅立叶变换,将图象由时域转换成时域,并把低频率挪动至图象核心。那样将低频率总厅后,就可以把图象的低频率和高频率分离,进而开展低通滤波器跟高通滤波的处理方法。 详细编码 低通滤...
此篇文章主要是给大家介绍了python图像处理图象的制作实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪 文章正文 事实上前边咱们就早已运用了图象的制作,如: io.imshow(img) 这一行代码的本质是运用matplotlib包对图片开展制作,制作完成后,回到一个matplotlib类型的信息。因而,我们还可以这么写: impor...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 890·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 478·2023-01-14 10:09
阅读 518·2023-01-14 10:02