From 1a5372f04acce7b8651ec65fd0666b57e1601e3a Mon Sep 17 00:00:00 2001 From: chenzenghui <3045316072@qq.com> Date: Wed, 24 Sep 2025 16:46:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AA=E7=94=9F=E6=88=90=E6=8B=89=E4=BC=B8ti?= =?UTF-8?q?ff,=E4=B8=8E=E6=B8=AF=E5=8F=A3=E5=9D=90=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpacetyTIFFDataStretch2PNG_AC.py | 66 ++++++++++++++++--- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py b/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py index a69e10c..6793e9f 100644 --- a/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py +++ b/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py @@ -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