python数据处理 豆瓣,python与图像处理

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: