此篇文章主要是給大家介紹了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>)#循環保存圖片
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02