欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python數(shù)字圖像處理之圖像的批量處理

 更新時(shí)間:2022年06月28日 16:13:37   作者:denny402  
這篇文章主要為大家介紹了python數(shù)字圖像處理之圖像的批量處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

有些時(shí)候,我們不僅要對(duì)一張圖片進(jìn)行處理,可能還會(huì)對(duì)一批圖片處理。這時(shí)候,我們可以通過循環(huán)來執(zhí)行處理,也可以調(diào)用程序自帶的圖片集合來處理。

圖片集合函數(shù)

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

這個(gè)函數(shù)是放在io模塊內(nèi)的,帶兩個(gè)參數(shù),第一個(gè)參數(shù)load_pattern, 表示圖片組的路徑,可以是一個(gè)str字符串。第二個(gè)參數(shù)load_func是一個(gè)回調(diào)函數(shù),我們對(duì)圖片進(jìn)行批量處理就可以通過這個(gè)回調(diào)函數(shù)實(shí)現(xiàn)?;卣{(diào)函數(shù)默認(rèn)為imread(),即默認(rèn)這個(gè)函數(shù)是批量讀取圖片。

先看一個(gè)例子:

import skimage.io as io
from skimage import data_dir
str=data_dir + '/*.png'
coll = io.ImageCollection(str)
print(len(coll))

顯示結(jié)果為25, 說明系統(tǒng)自帶了25張png的示例圖片,這些圖片都讀取了出來,放在圖片集合coll里。如果我們想顯示其中一張圖片,則可以在后加上一行代碼:

io.imshow(coll[10])

顯示為:

批量讀取

如果一個(gè)文件夾里,我們既存放了一些jpg格式的圖片,又存放了一些png格式的圖片,現(xiàn)在想把它們?nèi)孔x取出來,該怎么做呢?

import skimage.io as io
from skimage import data_dir
str='d:/pic/*.jpg:d:/pic/*.png'
coll = io.ImageCollection(str)
print(len(coll))

注意這個(gè)地方'd:/pic/*.jpg:d:/pic/*.png' ,是兩個(gè)字符串合在一起的,

第一個(gè)是'd:/pic/*.jpg',

第二個(gè)是'd:/pic/*.png' ,

合在一起后,中間用冒號(hào)來隔開,這樣就可以把d:/pic/文件夾下的jpg和png格式的圖片都讀取出來。

如果還想讀取存放在其它地方的圖片,也可以一并加進(jìn)去,只是中間同樣用冒號(hào)來隔開。

io.ImageCollection()這個(gè)函數(shù)省略第二個(gè)參數(shù),就是批量讀取。如果我們不是想批量讀取,而是其它批量操作,如批量轉(zhuǎn)換為灰度圖,那又該怎么做呢?

批量轉(zhuǎn)換為灰度圖

那就需要先定義一個(gè)函數(shù),然后將這個(gè)函數(shù)作為第二個(gè)參數(shù),如:

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])

這種批量操作對(duì)視頻處理是極其有用的,因?yàn)橐曨l就是一系列的圖片組合

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這個(gè)視頻中每隔10幀的圖片讀取出來,放在圖片集合中。

得到圖片集合以后,我們還可以將這些圖片連接起來,構(gòu)成一個(gè)維度更高的數(shù)組,連接圖片的函數(shù)為:

skimage.io.concatenate_images(ic)

帶一個(gè)參數(shù),就是以上的圖片集合,如:

from skimage import data_dir,io,color
coll = io.ImageCollection('d:/pic/*.jpg')
mat=io.concatenate_images(coll)

使用concatenate_images(ic)函數(shù)的前提是讀取的這些圖片尺寸必須一致,否則會(huì)出錯(cuò)。我們看看圖片連接前后的維度變化:

from skimage import data_dir,io,color
coll = io.ImageCollection('d:/pic/*.jpg')
print(len(coll))      #連接的圖片數(shù)量
print(coll[0].shape)   #連接前的圖片尺寸,所有的都一樣
mat=io.concatenate_images(coll)
print(mat.shape)  #連接后的數(shù)組尺寸

顯示結(jié)果:

2
(870, 580, 3)
(2, 870, 580, 3)

可以看到,將2個(gè)3維數(shù)組,連接成了一個(gè)4維數(shù)組

如果我們對(duì)圖片進(jìn)行批量操作后,想把操作后的結(jié)果保存起來,也是可以辦到的。

批量保存

例:把系統(tǒng)自帶的所有png示例圖片,全部轉(zhuǎn)換成256*256的jpg格式灰度圖,保存在d:/data/文件夾下

改變圖片的大小,我們可以使用tranform模塊的resize()函數(shù),后續(xù)會(huì)講到這個(gè)模塊。

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圖片轉(zhuǎn)換成灰度圖
     dst=transform.resize(gray,(256,256))  #將灰度圖片大小轉(zhuǎn)換為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])  #循環(huán)保存圖片

 結(jié)果:

以上就是python數(shù)字圖像處理之圖像的批量處理的詳細(xì)內(nèi)容,更多關(guān)于python數(shù)字圖像批量處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用xlrd和xlwt批量讀寫excel文件的示例代碼

    Python使用xlrd和xlwt批量讀寫excel文件的示例代碼

    這篇文章主要介紹了Python使用xlrd和xlwt批量讀寫excel文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Python中的切片函數(shù)Slice詳解

    Python中的切片函數(shù)Slice詳解

    這篇文章主要介紹了Python中的切片函數(shù)Slice詳解,切片是對(duì)有序的集合而言,意思從有序集合里提取數(shù)據(jù)構(gòu)成子集集合,給定提取的起點(diǎn)start、終點(diǎn)end以及方向上的步長step,能否切出非空子集,起點(diǎn)start需能沿步長方向上到達(dá)終點(diǎn),需要的朋友可以參考下
    2023-09-09
  • Python迭代器的實(shí)現(xiàn)原理

    Python迭代器的實(shí)現(xiàn)原理

    這篇文章主要介紹了Python迭代器的實(shí)現(xiàn)原理,文章基于python的相關(guān)資料展開對(duì)Python迭代器的詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-05-05
  • 教大家玩轉(zhuǎn)Python字符串處理的七種技巧

    教大家玩轉(zhuǎn)Python字符串處理的七種技巧

    這篇文章主要給大家介紹了關(guān)于學(xué)會(huì)Python字符串處理的七種技巧,其中包括字符串的連接和合并、字符串的切片和相乘、字符串的分割、字符串的開頭和結(jié)尾的處理、字符串的查找和匹配、字符串的替換以及字符串中去掉一些字符等操作,需要的朋友可以參考。
    2017-03-03
  • 使用Pyparsing處理復(fù)雜文本實(shí)現(xiàn)過程

    使用Pyparsing處理復(fù)雜文本實(shí)現(xiàn)過程

    這篇文章主要為大家介紹了使用Pyparsing處理復(fù)雜文本的實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • python pygame實(shí)現(xiàn)擋板彈球游戲

    python pygame實(shí)現(xiàn)擋板彈球游戲

    這篇文章主要為大家詳細(xì)介紹了python pygame實(shí)現(xiàn)擋板彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python箱型圖繪制與特征值獲取過程解析

    Python箱型圖繪制與特征值獲取過程解析

    這篇文章主要介紹了Python箱型圖繪制與特征值獲取過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python 3 中使用 Memcached的示例詳解

    Python 3 中使用 Memcached的示例詳解

    pymemcache是另一個(gè)流行的、功能豐富的Python Memcached客戶端庫,比python-memcached提供了復(fù)雜的操作和性能,在 Python3 中,使用 Memcached,高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),可以通過多個(gè)第三方庫來實(shí)現(xiàn),本文介紹Python 使用 Memcached相關(guān)知識(shí),感興趣的朋友一起看看吧
    2024-02-02
  • Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能

    Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能

    這篇文章主要介紹了Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。還等什么?一起跟隨小編過來看看吧
    2020-03-03
  • 一文帶你梳理Python的中級(jí)知識(shí)

    一文帶你梳理Python的中級(jí)知識(shí)

    Python是一種高級(jí)編程語言,它在眾多編程語言中,擁有極高的人氣和使用率。本文主要帶大家梳理一下Python中常用的中級(jí)知識(shí),希望對(duì)大家有所幫助
    2023-04-04

最新評(píng)論