當(dāng)我們制作自己的圖像分割數(shù)據(jù)集時(shí),一般都需要對(duì)數(shù)據(jù)集進(jìn)行像素級(jí)標(biāo)注螺垢,生成mask(對(duì)應(yīng)原圖像的每個(gè)像素的類別圖,一般為灰度圖)赖歌,常用工具為labelme枉圃,安裝很簡單,anaconda下安裝為以下四個(gè)語句:
conda create --name=labelme python=3.7
conda activate labelme
conda install pyqt
pip install labelme
參考鏈接:https://blog.csdn.net/qq_21466543/article/details/80693955
對(duì)所有數(shù)據(jù)集用labelme標(biāo)注好保存后庐冯,會(huì)在原圖的路徑下自動(dòng)生成:原圖片名稱.json文件孽亲。為了由json文件生成分割的mask標(biāo)簽,我們此刻需要使用labelme的labelme_json_to_dataset命令將json文件轉(zhuǎn)換為mask(安裝好labelme后展父,可以直接在終端輸入labelme_json_to_dataset C:\Users\Administrator\Desktop\tumor_seg\quick_val\010.json(后面是json文件的絕對(duì)路徑))返劲,但此命令只能一次轉(zhuǎn)化一個(gè)json文件,為了能批量轉(zhuǎn)換栖茉,需要改進(jìn)json_to_dataset.py文件篮绿,然后使用json_to_dataset.py文件去批量轉(zhuǎn)換json文件。我的json_to_dataset.py的位置在D:\Anaconda3\envs\labelme\Lib\site-packages\labelme\cli里面吕漂,讀者可以參考亲配,修改的時(shí)候最好復(fù)制了修改,將原文件重命名保留惶凝,以防修改錯(cuò)誤難以恢復(fù)吼虎,修改內(nèi)容參考網(wǎng)址:http://blog.csdn.net/u014513323/article/details/81166997。
注意:此處博主說mask_png中存放的是8位掩碼文件存疑苍鲜,作者運(yùn)行后生成的mask_png圖像幾乎為黑色鲸睛,導(dǎo)入matlab中看到,mask的像素值為1或0坡贺,灰度值太低,故考慮增加對(duì)比度(二分類直接二值化),但作者將mask中灰度值為1的像素灰度值置為255時(shí)遍坟,發(fā)現(xiàn)mask仍然全黑拳亿,后面修改了原博客程序中的第68行為 mask_dst = skimage.color.rgb2gray(lbl) ? # 將lbl轉(zhuǎn)換為普通8位灰度圖? 。此時(shí)愿伴,在matlab中肺魁,將生成的mask像素值為1的像素重新賦予255的像素值后,matlab顯示此刻mask為二值化的黑白圖隔节。所以鹅经,原博客代碼生成的mask_png實(shí)際上為高精度的16位灰度圖,255的灰度值相比其65535的最大灰度值仍然很小怎诫,所以將其作為8位灰度圖二值化時(shí)仍然輸出全黑的圖片瘾晃。這時(shí)有兩種方法,其一是上述所提到的更改程序生成普通8位灰度圖幻妓,其二是使用原程序蹦误,但二值化時(shí),將mask中1像素值更改為65535像素值肉津。
參考博客:
https://blog.csdn.net/qq_21466543/article/details/80693955
http://blog.csdn.net/u014513323/article/details/81166997