Python數(shù)字圖像處理(6):圖像的批量處理

有些時(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ù)是批量讀取圖片。
比如我們可以利用它將一組圖片讀入:

    from skimage import io, data_dir
    data_path_str = data_dir + '/*.png'
    images = io.ImageCollection(data_path_str)
    print(len(images))

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

    io.imshow(images[1])
    io.show()

顯示結(jié)果:



如果一個(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)換為灰度圖祖搓,那又該怎么做呢狱意?
那就需要先定義一個(gè)函數(shù),然后將這個(gè)函數(shù)作為第二個(gè)參數(shù)拯欧,如:

    from skimage import io, data_dir, color

    def convert_to_gray(f, **args):
        image = io.imread(f)
        image = color.rgb2gray(image)
        return image

    data_path = data_dir + '/*.png'
    collections = io.ImageCollection(data_path, load_func=convert_to_gray)
    io.imshow(collections[1])
    io.show()
gray image

這種批量操作對(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ù)組尺寸
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末护姆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掏击,更是在濱河造成了極大的恐慌卵皂,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砚亭,死亡現(xiàn)場(chǎng)離奇詭異灯变,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捅膘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門添祸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寻仗,你說我怎么就攤上這事刃泌。” “怎么了署尤?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵耙替,是天一觀的道長。 經(jīng)常有香客問我曹体,道長俗扇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任混坞,我火速辦了婚禮狐援,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘究孕。我一直安慰自己啥酱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布厨诸。 她就那樣靜靜地躺著镶殷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪微酬。 梳的紋絲不亂的頭發(fā)上绘趋,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天颤陶,我揣著相機(jī)與錄音,去河邊找鬼陷遮。 笑死滓走,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帽馋。 我是一名探鬼主播搅方,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼绽族!你這毒婦竟也來了姨涡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤吧慢,失蹤者是張志新(化名)和其女友劉穎涛漂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體检诗,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匈仗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岁诉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锚沸。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涕癣,靈堂內(nèi)的尸體忽然破棺而出哗蜈,到底是詐尸還是另有隱情,我是刑警寧澤坠韩,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布距潘,位于F島的核電站,受9級(jí)特大地震影響只搁,放射性物質(zhì)發(fā)生泄漏音比。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一氢惋、第九天 我趴在偏房一處隱蔽的房頂上張望洞翩。 院中可真熱鬧,春花似錦焰望、人聲如沸骚亿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽来屠。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俱笛,已是汗流浹背捆姜。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迎膜,地道東北人泥技。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像星虹,于是被迫代替她去往敵國和親零抬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容