Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)_第1頁
Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)_第2頁
Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第Python實(shí)現(xiàn)RLE格式與PNG格式互轉(zhuǎn)目錄介紹1.PNG2RLE2.RLE2PNG3.示例4.完整代碼如下

介紹

在機(jī)器視覺領(lǐng)域的深度學(xué)習(xí)中,每個(gè)數(shù)據(jù)集都有一份標(biāo)注好的數(shù)據(jù)用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)。

為了節(jié)省空間,很多數(shù)據(jù)集的標(biāo)注文件使用RLE的格式。

但是神經(jīng)網(wǎng)絡(luò)的輸入一定是一張圖片,為此必須把RLE格式的文件轉(zhuǎn)變?yōu)閳D像格式。

圖像格式主要又分為.jpg和.png兩種格式,其中l(wèi)abel數(shù)據(jù)一定不能使用.jpg,因?yàn)樗驗(yàn)閴嚎s算算法的原因,會造成圖像失真,圖像各個(gè)像素的值可能會發(fā)生變化。分割任務(wù)的數(shù)據(jù)集的label圖像中每一個(gè)像素都代表了該像素點(diǎn)所屬的類別,所以這樣的失真是無法接受的。為此只能使用.png格式作為label,pascolvoc和coco數(shù)據(jù)集正是這樣做的。

1.PNG2RLE

PNG格式轉(zhuǎn)RLE格式

defrle_encode(binary_mask):

binary_mask:numpyarray,1-mask,0-background

Returnsrunlengthasstringformated

pixels=binary_mask.flatten()

pixels=np.concatenate([[0],pixels,[0]])

runs=np.where(pixels[1:]!=pixels[:-1])[0]+1

runs[1::2]-=runs[::2]

return''.join(str(x)forxinruns)

2.RLE2PNG

RLE格式轉(zhuǎn)PNG格式

#!--*--coding:utf---*--

importnumpyasnp

defrle_decode(mask_rle,shape):

mask_rle:run-lengthasstringformated(startlength)

shape:(height,width)ofarraytoreturn

Returnsnumpyarray,1-mask,0-background

s=mask_rle.split()

starts,lengths=[np.asarray(x,dtype=int)forxin(s[0:][::2],s[1:][::2])]

starts-=1

ends=starts+lengths

binary_mask=np.zeros(shape[0]*shape[1],dtype=np.uint8)

forlo,hiinzip(starts,ends):

binary_mask[lo:hi]=1

returnbinary_mask.reshape(shape)

3.示例

'''

RLE:Run-LengthEncode

fromPILimportImage

importnumpyasnp

def__main__():

maskfile='/path/to/test.png'

mask=np.array(Image.open(maskfile))

binary_mask=mask.copy()

binary_mask[binary_mask=127]=0

binary_mask[binary_mask127]=1

#encode

rle_mask=rle_encode(binary_mask)

#decode

binary_mask_decode=self.rle_decode(rle_mask,binary_mask.shape[:2])

4.完整代碼如下

'''

RLE:Run-LengthEncode

#!--*--

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論