python数据处理 豆瓣,python与图像处理
处理一批图片时,有以下几种方法:
循环处理。
调用程序自带的图片集合来处理。
聚合函数是:
skim age . io . image collection(load _ pattern,load_func=None)
该函数在io模块中,有两个参数。
图片组的路径Load_pattern是一个str字符串。
Load_func是一个回调函数。通过这个回调函数可以实现图片的批量处理。默认的回调函数是imread(),也就是这个函数默认批量读取图片。
批量处理图片的示例
例如:
将skimage.io作为io导入
从skimage导入数据目录
str=data_dir /*。巴布亚新几内亚
coll=io。图像集合(字符串)
打印(len(coll))
输出为
27
表示系统自带27张图片,通过ImageCollection接口读出,放入图片集合的coll变量中。要显示其中一张图片,请使用以下代码
io.imshow(coll[20])
io.show()
显示结果如下
当您想读出不同格式的图片时,如jpg格式图片和png格式图片,方法如下
将skimage.io作为io导入
从skimage导入数据目录
str=d:/pic/*。jpg:d:/pic/*。巴布亚新几内亚
coll=io。图像集合(字符串)
打印(len(coll))
注意:
这个地方d:/pic/。jpg:d:/pic/。 png 是两个字符串的组合,第一个是 d:/pic/。jpg 第二个是 d:/pic/。巴布亚新几内亚。合并后中间用冒号(:)隔开,这样你就可以把如果想看其他地方存储的图片,也可以加在一起,但是中间也用冒号隔开。
木卫一。ImageCollection()函数省略了第二个参数,即批量读取。如果我们不想批量读取,而是进行其他批量操作,比如批量转换成灰度图像,我们需要先定义一个函数,然后用这个函数作为第二个参数,比如:
从skimage导入数据_目录,io,颜色
def convert_gray(f):
rgb=io.imread(f)
返回color.rgb2gray(rgb)
str=data_dir /*。巴布亚新几内亚
coll=io。ImageCollection(str,load_func=convert_gray)
io.imshow(coll[20])
io.show()
输出是:
批处理对于视频处理非常有用,因为视频是一系列的图片。
从skimage导入数据_目录,io,颜色
类别AVILoader:
video_file=myvideo.avi
def __call__(self,frame):
返回video_read(self.video_file,frame)
avi_load=AVILoader()
帧数=范围(0,1000,10) # 0,10,20,
ic=io。ImageCollection(frames,load_func=avi_load)
Myvideo.avi本视频每10帧图片读出,放入图片集。
得到图片集合后,我们还可以把这些图片连接起来,组成一个更高维的数组。连接图片的功能是:
skim age . io . concatenate _ images(IC)
用一个参数,就是上面的图片集合,比如:
从skimage导入数据_目录,io,颜色
coll=io。ImageCollection(d:/pic/*。jpg’)
mat=io.concatenate_images(coll)
使用concatenate_images(ic)函数的前提是读取的图片必须大小相同,否则会出错。我们来看看图片连接前后的维度变化:
从skimage导入数据_目录,io,颜色
coll=io。ImageCollection(d:/pic/*。jpg’)
Print(len(coll)) #连接图片的数量
Print(coll[0])。形状)#连接前图片的大小,都一样
mat=io.concatenate_images(coll)
Print(mat.shape) #串联数组的大小
显示结果:
2
(870, 580, 3)
(2, 870, 580, 3)
你可以看到两个三维数组连接成一个四维数组。
如果我们想保存图片批量操作后的结果,是可以做到的。
示例:将系统附带的所有png样本图像转换为256*256 jpg格式的灰度图像,并将其保存在d:/data/文件夹中。
要改变图像的大小,我们可以使用tranform模块的resize()函数,这将在后面讨论。
从skimage导入数据_目录、io、转换、颜色
将numpy作为np导入
def convert_gray(f):
Rgb=io.imread(f) #依次读取Rgb图片
Gray=color.rgb2gray(rgb) #将rgb图片转换为灰度图像。
dst=transform.resize(gray,(256,256)) #将灰度图片大小转换为256*256
返回夏令时
str=data_dir /* .巴布亚新几内亚
coll=io .ImageCollection(str,load_func=convert_gray)
对于范围内的我(列(收集)):
io。im保存(/home/wx er/pic/ NP。str(I)).jpg ,coll[i]) #循环保存图片
保存的图片结果如下
参考
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。