您好,登錄后才能下訂單哦!
做cnn的難免要做大量的圖片處理。由于接手項(xiàng)目時(shí)間不長(zhǎng),且是新項(xiàng)目,前段時(shí)間寫(xiě)代碼都很趕,現(xiàn)在稍微總結(jié)(恩,總結(jié)是個(gè)好習(xí)慣)。
1,首先安裝python-Image和python-skimage、python-matplotlib。
簡(jiǎn)單代碼:
import Image as img import os from matplotlib import pyplot as plot from skimage import io,transform import argparse def show_data(data): fig = plot.figure() ax = fig.add_subplot(121) ax.imshow(data, cmap='gray') ax2 = fig.add_subplot(122) ax2.imshow(data) plot.show() if __name__ == "__main__": parse = argparse.ArgumentParser() parse.add_argument('--picpath', help = "the picture' path") args = parse.parse_args() img_file1 = img.open(args.picpath)#Image讀圖片 one_pixel = img_file1.getpixel((0,0))[0] print "picture's first pixe: ",one_pixel print "the picture's size: ", img_file1.size#Image讀出來(lái)的size是高寬 show_data(img_file1) img_file2 = io.imread(args.picpath)#skimage讀圖片 show_data(img_file2) print "picture's first pixel: ", img_file2[0][0][0] print "the picture's shape: ", img_file2.shape#skimage讀出來(lái)的shape是高,寬, 通道
調(diào)用及輸出:
其實(shí)Image讀出來(lái)的是PIL什么的類(lèi)型,而skimage.io讀出來(lái)的數(shù)據(jù)是numpy格式的。如果想直接看Image和skimage讀出來(lái)圖片的區(qū)別,可以直接輸出它們讀圖片以后的返回結(jié)果。
2.Image和skimage讀圖片:
img_file1 = img.open(args.picpath) img_file2 = io.imread(args.picpath)
3.讀圖片后數(shù)據(jù)的大?。?/p>
print "the picture's size: ", img_file1.size print "the picture's shape: ", img_file2.shape
4.得到像素:
one_pixel = img_file1.getpixel((0,0))[0] img_file2[0][0][0]
分析:
1.從3的輸出可以看出img讀圖片的大小是圖片的(height,width);
skimage的是(height,width, channel)[這也是為什么caffe在單獨(dú)測(cè)試時(shí)要要在代碼中設(shè)置:transformer.set_transpose('data',(2,0,1)),因?yàn)閏affe可以處理的圖片的數(shù)據(jù)格式是(channel,height,width),所以要轉(zhuǎn)換數(shù)據(jù)啊]
2.img讀出來(lái)的圖片獲得某點(diǎn)像素用getpixel((h,w))可以直接返回這個(gè)點(diǎn)三個(gè)通道的像素值
skimage讀出來(lái)的圖片可以直接img_file2[0][0][0]獲得,但是一定記住它的格式,并不是你想的(channel,height,width)
關(guān)于matplotlib簡(jiǎn)單的畫(huà)圖請(qǐng)關(guān)注下篇~
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。