只生成拉伸tiff,与港口坐标

master
chenzenghui 2025-09-24 16:46:53 +08:00
parent c702658884
commit 1a5372f04a
1 changed files with 58 additions and 8 deletions

View File

@ -359,6 +359,50 @@ def slicePortDataset(rootname,im_data,src_im_data, im_Geotrans, im_proj, outfold
print("图像切片结束")
return slice_ID
def sliceLabelPortDataset(rootname,im_data,src_im_data, im_Geotrans, im_proj, outfolder,slice_ID,portfilestr):
# 读取portfilestr 中文件
MLCPoints=[]
JLCPoints=[]
MJLCPoints=[]
with open(portfilestr,"r",encoding="utf-8") as portfile:
for line in portfile.readlines():
if(len(line)>3):
linemetas=line.split("\t\t")
clsname=linemetas[0]
pointstr=linemetas[1]
pointx=float(pointstr.split(",")[0])
pointy=float(pointstr.split(",")[1])
if clsname=="JLC":
JLCPoints.append([pointx,pointy])
elif clsname=="MJLC":
MJLCPoints.append([pointx,pointy])
elif clsname=="MLC":
MLCPoints.append([pointx,pointy])
# 处理文件脚本
if len(MLCPoints)==0 and len(JLCPoints)==0 and len(MJLCPoints)==0:
return
else:
pass
# 切片主流程
portuint8Tifffolder=os.path.join(outfolder,"港口","unit8tiff")
portlabelfolder=os.path.join(outfolder,"港口","MLCLabels")
unit8tiffPath=os.path.join(portuint8Tifffolder,"{}_uint8.tiff".format(rootname))
uint8labelPath=os.path.join(portlabelfolder,"{}_uint8.csv".format(rootname))
write_envi(im_data,im_Geotrans,im_proj,unit8tiffPath)
with open(portfilestr,"r",encoding="utf-8") as portfile:
with open(uint8labelPath, "w", encoding="utf-8") as labelfile:
for line in portfile.readlines():
if (len(line) > 3):
linemetas = line.split("\t\t")
clsname = linemetas[0]
pointstr = linemetas[1]
pointx = float(pointstr.split(",")[0])
pointy = float(pointstr.split(",")[1])
labelfile.write("{},{},{}\n".format(pointx,pointy,clsname))
return None
def stretchSliceProcess(infilepath, outfolder,portfilestr, strechmethod):
@ -367,18 +411,22 @@ def stretchSliceProcess(infilepath, outfolder,portfilestr, strechmethod):
shiptifffolder=os.path.join(outfolder,"舰船","tifffolder")
allpngfolder = os.path.join(outfolder, "allpngfolder")
portbinfolder=os.path.join(outfolder,"港口","unit8binfolder")
portpngfolder=os.path.join(outfolder,"港口","pngfolder")
porttifffolder=os.path.join(outfolder,"港口","tifffolder")
# portbinfolder=os.path.join(outfolder,"港口","unit8binfolder")
# portpngfolder=os.path.join(outfolder,"港口","pngfolder")
# porttifffolder=os.path.join(outfolder,"港口","tifffolder")
portuint8Tifffolder=os.path.join(outfolder,"港口","unit8tiff")
portlabelfolder=os.path.join(outfolder,"港口","MLCLabels")
existOrCreate(shipbinfolder)
existOrCreate(shippngfolder)
existOrCreate(shiptifffolder)
existOrCreate(allpngfolder)
existOrCreate(portbinfolder)
existOrCreate(portpngfolder)
existOrCreate(porttifffolder)
# existOrCreate(portbinfolder)
# existOrCreate(portpngfolder)
# existOrCreate(porttifffolder)
existOrCreate(portuint8Tifffolder)
existOrCreate(portlabelfolder)
im_proj, im_Geotrans, im_data=read_tif(infilepath)
@ -388,9 +436,11 @@ def stretchSliceProcess(infilepath, outfolder,portfilestr, strechmethod):
rootname=Path(infilepath).stem
allImagePath=os.path.join(allpngfolder, rootname+"_all.png")
Image.fromarray(im_data).save(allImagePath,compress_level=0)
slice_ID=0
slice_ID=sliceShipDataset(rootname,im_data, src_im_data,im_Geotrans, im_proj, outfolder)
slice_ID=slice_ID+1
slice_ID=slicePortDataset(rootname,im_data, src_im_data,im_Geotrans, im_proj, outfolder,slice_ID,portfilestr)
# slice_ID=slicePortDataset(rootname,im_data, src_im_data,im_Geotrans, im_proj, outfolder,slice_ID,portfilestr)
slice_ID=sliceLabelPortDataset(rootname,im_data, src_im_data,im_Geotrans, im_proj, outfolder,slice_ID,portfilestr)
print("图像切片与拉伸完成")
pass