主頁 > 知識庫 > json 轉(zhuǎn) mot17數(shù)據(jù)格式的實現(xiàn)代碼 (親測有效)

json 轉(zhuǎn) mot17數(shù)據(jù)格式的實現(xiàn)代碼 (親測有效)

熱門標(biāo)簽:長春人工智能電銷機(jī)器人官網(wǎng) 如何在地圖標(biāo)注文字 ai地圖標(biāo)注 百應(yīng)ai電銷機(jī)器人鄭州 女王谷地圖標(biāo)注 西藏快速地圖標(biāo)注地點 廈門crm外呼系統(tǒng)如何 n400電話申請多少錢 地圖標(biāo)注推廣單頁

代碼使用說明

1970-2270文件夾是保存圖像和json文件(也就是需要進(jìn)行轉(zhuǎn)換的文件)
det文件夾是保存單個json對應(yīng)的txt(因為np.savetxt函數(shù)只能進(jìn)行單個數(shù)組的保存)
det.txt文件是整合det文件夾所有txt文件(mot17數(shù)據(jù)集格式)

完整代碼

from PIL import Image
import os
import glob
import numpy as np
import json

#讀取圖片,修改圖片,另存圖片
def convertjpg(jpgfile,outdir,img_sum=0):
  img=Image.open(jpgfile)#提取目錄下所有圖片
  try:
    img_sum=str('%08d'%img_sum)#圖片保存成00000001格式
    img.save(os.path.join(outdir)+img_sum+'.jpg')#保存到另一目錄
  except Exception as e:
    print(e)

#讀取文件名
def file_name(file_dir):  
  L=[]#保存文件名
  img_num=0#計算圖片總數(shù)
  for root, dirs, files in os.walk(file_dir):
    img_num=img_num+len(files)
    one=os.path.basename(str(root))#獲取路徑最后的/或者\后的文件名
    L.append(one) 
  num=len(L)-1 #獲取路徑下文件個數(shù) 
  print('%s路徑下有%d個文件'%(L[0],num))
  return L ,num ,img_num


def json2det(json_dir,out_dir,json_num):
  with open(json_dir,'r') as f:
    data_dict = json.load(f)
  '''5行5個目標(biāo),6列(類別索引、框左上角x坐標(biāo)、框左上角y坐標(biāo)、框的寬、框的高、目標(biāo)置信度100)'''
  data=np.zeros([5,6])
  for i in range(len(data_dict["shapes"])):#遍歷一個json中的所有目標(biāo)
    points = np.array(data_dict["shapes"][i]["points"])
    xmin=min(points[:,0])
    ymin=min(points[:,1])
    xmax=max(points[:,0])
    ymax=max(points[:,1])
    
    data[i,0]=json_num
    data[i,1]=xmin
    data[i,2]=ymin
    data[i,3]=xmax-xmin
    data[i,4]=ymax-ymin
    data[i,5]=100
  print(data)
      
  a=np.linspace(-1,-1,len(data))
  data=np.insert(data,1,a,axis=1)#行矩陣插入
  a=a.reshape((len(a),1))
  data=np.concatenate((data,a,a,a),axis = 1)#補(bǔ)充-1
  print(data,'\n')    
  np.savetxt(out_dir,data,fmt="%d,%d,%.3f,%.3f,%.3f,%.3f,%.3f,%d,%d,%d",delimiter="\n")


def main():  
  i=0
  data_dir='E:/DL/CSDN-blog/json2mot17'
  for jsonfile in glob.glob(data_dir+'/1970-2270/'+'*.json'):
    i=i+1
    json2det(jsonfile,data_dir+'/det/'+str(i)+'.txt',i)
  print('det.txt生成完成')
  
  det=open(data_dir+'/det.txt','w')
  for txts in range(300):
    print(txts)
    one_det=open(data_dir+'/det/'+str(txts+1)+'.txt').read()
    det.write(one_det)
    
  det.close()
  

if __name__ == '__main__':
  main()

代碼執(zhí)行結(jié)果

到此這篇關(guān)于json 轉(zhuǎn) mot17數(shù)據(jù)格式 (親測有效)的文章就介紹到這了,更多相關(guān)json 轉(zhuǎn) mot17數(shù)據(jù)格式 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 格式化打印json數(shù)據(jù)方法(展開狀態(tài))
  • python3實現(xiàn)從kafka獲取數(shù)據(jù),并解析為json格式,寫入到mysql中
  • json數(shù)據(jù)格式常見操作示例
  • python3 json數(shù)據(jù)格式的轉(zhuǎn)換(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互轉(zhuǎn)換)
  • Python JSON格式數(shù)據(jù)的提取和保存的實現(xiàn)
  • jQuery解析json格式數(shù)據(jù)示例

標(biāo)簽:拉薩 渭南 亳州 內(nèi)江 興安盟 黔東 廊坊 綿陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《json 轉(zhuǎn) mot17數(shù)據(jù)格式的實現(xiàn)代碼 (親測有效)》,本文關(guān)鍵詞  json,轉(zhuǎn),mot17,數(shù)據(jù),格式,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《json 轉(zhuǎn) mot17數(shù)據(jù)格式的實現(xiàn)代碼 (親測有效)》相關(guān)的同類信息!
  • 本頁收集關(guān)于json 轉(zhuǎn) mot17數(shù)據(jù)格式的實現(xiàn)代碼 (親測有效)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章