import numpy as np
import operator
import os
import copy
from matplotlib.font_manager import FontProperties
from scipy.interpolate import lagrange
import random
import matplotlib.pyplot as plt
import math
np.set_printoptions(suppress=True)
# 把opt文件内的逗号变为空格
#数据在我的百度云数据库txt文件,及opt文件
np.set_printoptions(threshold=np.inf) #输出全部矩阵不带省略号
random.seed(10)
##########################################
data = np.loadtxt('txt//final37.txt')
# data = data[0:100]#抽取一部分
x1 = data[:,5]#x起点坐标
x2 = data[:,9]#x终点坐标
y1 = data[:,6]#y起
y2 = data[:,10]#y起
z1 = data[:,4]#IDpart
z2 = data[:,8]#IDpart
diam = data[:,12]
s1 = [a1 for a1 in range(1,len(x1)-1) if z1[a1]==z2[a1-1]!=-1 or z1[a1]!= z2[a1-1]]#id相同不等于0,或id不同
# print(s1)
lx = []#x1,x2相同的部分组成的列表
lxqi = []
lxzg = []
for i1 in range(len(s1)-1):
b1 = x1[s1[i1]:s1[i1+1]]
b1 = b1.tolist()
b2 = x2[s1[i1+1]-1]#s1[i1]相当于a1
# b1 = b1 + [b2]#把与x2最后相连的一个数和x1拼接起来
b5 = z1[s1[i1]]#x,y起点id
b1qi_id = [b5]+b1 +[b2]
b6 = z2[s1[i1+1]-1]#x,y终点id
b1zg_id = [b6] + b1+[b2]
lx.append(b1)
lxqi.append(b1qi_id)
lxzg.append(b1zg_id)
###################################################
ly = []#y坐标以及管径大小
for i3 in range(len(s1)-1):
b3 = y1[s1[i3]:s1[i3+1]]
b3 = b3.tolist()
b4 = y2[s1[i3+1]-1]#y最后一个不相等的数
b3 = b3 + [b4]
dm = diam[s1[i3+1]-1]
b3 = b3 + [dm]#加上管径
ly.append(b3)
#####################################################
#带有起点id的x坐标与y坐标合并
for q1 in range(len(lxqi)):
for q2 in range(len(ly[q1])):
lxqi[q1].append(ly[q1][q2])
#带有终点id的x坐标与y坐标合并
for p1 in range(len(lxzg)):
for p2 in range(len(ly[p1])):
lxzg[p1].append(ly[p1][p2])
lxqi.sort(key=operator.itemgetter(0))#排序,只按照第一个索引大小排序
tou = lxqi
lxzg.sort(key=operator.itemgetter(0))
wei = lxzg
# #########################################
toudeng = []
weideng = []
for dwei in wei:
for i in range(len(tou)-1):
if dwei[0] ==tou[i][0] and dwei[0]==tou[i+1][0]:
toud = [dwei,tou[i],tou[i+1]]
toudeng.append(toud)
for dtou in tou:
for i in range(len(wei)-1):
if dtou[0] == wei[i][0] and dtou[0]==wei[i+1][0]:
weid = [wei[i],wei[i+1],dtou]
weideng.append(weid)
# ###################################################
datatoudeng = []
dataweideng = []
#去掉起点id
for i in range(len(toudeng)):
a = toudeng[i][0][1::]
b = toudeng[i][1][1::]
c = toudeng[i][2][1::]
d = [a]+[b]+[c]
datatoudeng.append(d)
for i in range(len(weideng)):
a1 = weideng[i][0][1::]
b1 = weideng[i][1][1::]
c1 = weideng[i][2][1::]
d1 = [a1]+[b1]+[c1]
dataweideng.append(d1)
# print(dataweideng)
####################################################################
#判断管径信息是否加进列表,若未加进则只为x,y坐标,为偶数
for i in range(len(dataweideng)):
a = dataweideng[i]
assert len(a[0])%2==1
assert len(a[1])%2==1
assert len(a[2])%2==1
for i in range(len(datatoudeng)):
a = datatoudeng[i]
assert len(a[0])%2==1
assert len(a[1])%2==1
assert len(a[2])%2==1
finaldata = datatoudeng +dataweideng#未插值
final = datatoudeng #所有分叉,头等分叉,尾等分叉
####################################
#在相邻两坐标之间最大的两点插值
finalinsert = []
for i in range(len(final)):
a = np.array(final[i])
datab = []
for j in range(len(a)):
b = np.array(a[j])
# print(b)###
lenlist = len(b)
halflen = lenlist//2
chalist = []
for k in range(halflen-1):
cha =abs( b[k+1]-b[k])
chalist.append(cha)
# print(chalist)
listmax = max(chalist)
indexmax = chalist.index(listmax)
# print(indexmax)
startx = b[indexmax]
stopx = b[indexmax+1]
starty = b[indexmax+halflen]
stopy = b[indexmax+halflen+1]
insertcount = (65-lenlist)//2#25,65数据维度(-1,3,60,1)
insertx = np.linspace(startx,stopx,insertcount)
# print(np.isnan(insertx).sum())
if b[indexmax]==b[indexmax+1] :#问题出在此处,相等的话插值得到的y坐标点都是nan
b[indexmax+1] = b[indexmax+1]+1
f = lagrange([b[indexmax],b[indexmax+1]],[b[indexmax+halflen],b[indexmax+halflen+1]])
inserty = f(insertx)
else:
f = lagrange([b[indexmax],b[indexmax+1]],[b[indexmax+halflen],b[indexmax+halflen+1]])
inserty = f(insertx)
# print(np.isnan(inserty))
b = b.tolist()
for filex in insertx[::-1][1:-1]:
b.insert(indexmax+1,filex)
for filey in inserty[::-1][1:-1]:
b.insert((halflen+indexmax+len(insertx[::-1][1:-1])+1),filey)
datab.append(b)
finalinsert.append(datab)
final = np.array(finalinsert)
print(final.shape)
print(np.max(final))
print(np.min(final))
# print(final)
#########################################################
#归一化前可视化单张图片
# for i in range(len(final)):
# # plt.figure(figsize=(128,128),dpi=1)
# plt.plot(final[i][0][0:30],final[i][0][30:60])
# plt.plot(final[i][1][0:30],final[i][1][30:60])
# plt.plot(final[i][2][0:30],final[i][2][30:60])
# # plt.axis('off')
# plt.show()
# # plt.savefig('C:\\Users\\Administrator\\Desktop\\调整分辨率\\原始图\\resouce%d.jpg' %(i),dpi=1)
# # plt.close()
#########################################################
#归一化前可视化血管网络
# finaldata = final
# lx = []
# ly = []
# for i in range(len(finaldata)):
# a = finaldata[i][0]
# b = finaldata[i][1]
# c = finaldata[i][2]
# lx.append(a[0:len(a)//2])
# ly.append(a[len(a)//2:-1])
# lx.append(b[0:len(b)//2])
# ly.append(b[len(b)//2:-1])
# lx.append(c[0:len(c)//2])
# ly.append(c[len(c)//2:-1])
# # plt.figure(figsize=(1280,1280),dpi=1)
# for i in range(len(lx)):
# plt.plot(lx[i],ly[i])
# plt.axis('off')
# plt.show()
# plt.close()
#########################################
x = final[:,:,0:30]
y = final[:,:,30:60]
diam = final[:,:,-1]
diam = diam.reshape(-1,3,1)
# x = final[:,:,0:10]
# y = final[:,:,10:20]
#########################################
#旋转
def rotate(angle,valuex,valuey):
rotatex = math.cos(angle)*valuex -math.sin(angle)*valuey
rotatey = math.cos(angle)*valuey + math.sin(angle)* valuex
return rotatex,rotatey
rotatedata = []
for i in range(0,360,90): #每隔3度旋转一次
x1,y1 = rotate(i,x,y)
rotate_final = np.concatenate((x1,y1,diam),axis=2)
rotatedata.append(rotate_final)
finaldata = []
for file in rotatedata:
for data in file:
finaldata.append(data)
finaldata = np.array(finaldata)
max1 = np.max(finaldata)
min1 = np.min(finaldata)
print(max1)
print(min1)
print(finaldata.shape)
print(finaldata)
##############################################################
#归一化后可视化单张图片
# for i in range(len(final)):
# plt.figure(figsize=(128,128),dpi=1)
# plt.plot(final[i][0][0:30],final[i][0][30:60],linewidth=(final[i][0][-1]*(max_diam-min_diam)+min_diam)*100)
# plt.plot(final[i][1][0:30],final[i][1][30:60],linewidth=(final[i][1][-1]*(max_diam-min_diam)+min_diam)*100)
# plt.plot(final[i][2][0:30],final[i][2][30:60],linewidth=(final[i][2][-1]*(max_diam-min_diam)+min_diam)*100)
# plt.axis('off')
# # plt.show()
# plt.savefig('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\原始图\\resouce%d.jpg' %(i),dpi=1)
# plt.close()
############################################################
#归一化处理去除管径信息
# finalSubCAM = []
# # final = finaldata
# for i in range(len(final)):
# finalx = final[i][:,0:30]#(7,10,30)
# finaly = final[i][:,30:60]#(10,30,60)
# Xmax = np.max(finalx)
# Xmin = np.min(finalx)
# Ymax = np.max(finaly)
# Ymin = np.min(finaly)
# normx = (finalx-Xmin)/(Xmax-Xmin)
# normy = (finaly-Ymin)/(Ymax-Ymin)
# normxy = np.concatenate((normx,normy),axis=1)
# finalSubCAM.append(normxy)
# finaldata = np.array(finalSubCAM)
###################################################
#加入管径信息
# guanjing = final[:,:,-1]
# guanjing = guanjing.reshape(-1,3,1)
# guan_max = np.max(guanjing)
# guan_min = np.min(guanjing)
# guanjing = (guanjing-guan_min)/(guan_max-guan_min)
# final = np.concatenate((finaldata,guanjing),axis=2)
# print("管径最大值:%.4f,管径最小值:%.4f" % (guan_max,guan_min))#min 10.94, max 193.41 cha 182.47
# print(final.shape)
####################################################
#归一化处理不去除管径信息
finalSubCAM = []
# final = finaldata
for i in range(len(final)):
finalx = final[i][:,0:30]#(7,10,30)
finaly = final[i][:,30:60]#(10,30,60)
diameter = final[i][:,-1]
diameter = diameter.reshape(3,1)
Xmax = np.max(finalx)
Xmin = np.min(finalx)
Ymax = np.max(finaly)
Ymin = np.min(finaly)
Dmax = np.max(diameter)
Dmin = np.min(diameter)
normx = (finalx-Xmin)/(Xmax-Xmin)
normy = (finaly-Ymin)/(Ymax-Ymin)
normd = (diameter-Dmin)/(Dmax-Dmin)
normxy = np.concatenate((normx,normy,diameter),axis=1) #加入原始管径,或归一化管径normd
finalSubCAM.append(normxy)
finaldata = np.array(finalSubCAM)
np.random.shuffle(finaldata)
print(finaldata.shape)
##############################################
np.save('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\final37_3.npy',final)
#######################################
# 可视化旋转效果(未加管径可视化)
# final = finaldata
# print(finaldata[0])
# for file in final:
# lenth0 = len(file[0])
# lenth1 = len(file[1])
# lenth2 = len(file[2])
# ban0 = lenth0 // 2
# ban1 = lenth1 // 2
# ban2 = lenth2 // 2
# plt.plot(file[0][0:ban0],file[0][ban0:lenth0])
# plt.plot(file[1][0:ban1],file[1][ban1:lenth1])
# plt.plot(file[2][0:ban2],file[2][ban2:lenth2])
# plt.show()
##########################################
# 可视化旋转效果(加入管径可视化)
# final = finalnorm
# final = finaldata
# for file in final:
# lenth0 = len(file[0])-1
# lenth1 = len(file[1])-1
# lenth2 = len(file[2])-1
# ban0 = lenth0 // 2
# ban1 = lenth1 // 2
# ban2 = lenth2 // 2
# plt.plot(file[0][0:ban0],file[0][ban0:lenth0])
# plt.plot(file[1][0:ban1],file[1][ban1:lenth1])
# plt.plot(file[2][0:ban2],file[2][ban2:lenth2])
# plt.show()
#####################################################
#每100张图片显示在一张图中
# rows,cols = 10, 10
# fig,axs = plt.subplots(rows,cols)
# cnt = 0
# for i in range(rows):
# for j in range(cols):
# xy = finaldata[cnt]#第n个分叉图,有三个分支,每个分支21个数
# for k in range(len(xy)):
# x = xy[k][0:30]
# y = xy[k][30:60]
# axs[i,j].plot(x,y,linewidth=2)
# axs[i,j].axis('off')
# cnt +=1
# plt.show()
原始的归一化插值方法
import numpy as np
import operator
import os
import copy
from matplotlib.font_manager import FontProperties
from scipy.interpolate import lagrange
import random
import matplotlib.pyplot as plt
import math
np.set_printoptions(suppress=True)
# 把opt文件内的逗号变为空格
#数据在我的百度云数据库txt文件,及opt文件
np.set_printoptions(threshold=np.inf) #输出全部矩阵不带省略号
random.seed(10)
##########################################
data = np.loadtxt('txt//final37.txt')
# data = data[0:100]#抽取一部分
x1 = data[:,5]#x起点坐标
x2 = data[:,9]#x终点坐标
y1 = data[:,6]#y起
y2 = data[:,10]#y起
z1 = data[:,4]#IDpart
z2 = data[:,8]#IDpart
diam = data[:,12]
s1 = [a1 for a1 in range(1,len(x1)-1) if z1[a1]==z2[a1-1]!=-1 or z1[a1]!= z2[a1-1]]#id相同不等于0,或id不同
# print(s1)
lx = []#x1,x2相同的部分组成的列表
lxqi = []
lxzg = []
for i1 in range(len(s1)-1):
b1 = x1[s1[i1]:s1[i1+1]]
b1 = b1.tolist()
b2 = x2[s1[i1+1]-1]#s1[i1]相当于a1
# b1 = b1 + [b2]#把与x2最后相连的一个数和x1拼接起来
b5 = z1[s1[i1]]#x,y起点id
b1qi_id = [b5]+b1 +[b2]
b6 = z2[s1[i1+1]-1]#x,y终点id
b1zg_id = [b6] + b1+[b2]
lx.append(b1)
lxqi.append(b1qi_id)
lxzg.append(b1zg_id)
###################################################
ly = []#y坐标以及管径大小
for i3 in range(len(s1)-1):
b3 = y1[s1[i3]:s1[i3+1]]
b3 = b3.tolist()
b4 = y2[s1[i3+1]-1]#y最后一个不相等的数
b3 = b3 + [b4]
dm = diam[s1[i3+1]-1]
b3 = b3 + [dm]#加上管径
ly.append(b3)
#####################################################
#带有起点id的x坐标与y坐标合并
for q1 in range(len(lxqi)):
for q2 in range(len(ly[q1])):
lxqi[q1].append(ly[q1][q2])
#带有终点id的x坐标与y坐标合并
for p1 in range(len(lxzg)):
for p2 in range(len(ly[p1])):
lxzg[p1].append(ly[p1][p2])
lxqi.sort(key=operator.itemgetter(0))#排序,只按照第一个索引大小排序
tou = lxqi
lxzg.sort(key=operator.itemgetter(0))
wei = lxzg
# #########################################
toudeng = []
weideng = []
for dwei in wei:
for i in range(len(tou)-1):
if dwei[0] ==tou[i][0] and dwei[0]==tou[i+1][0]:
toud = [dwei,tou[i],tou[i+1]]
toudeng.append(toud)
for dtou in tou:
for i in range(len(wei)-1):
if dtou[0] == wei[i][0] and dtou[0]==wei[i+1][0]:
weid = [wei[i],wei[i+1],dtou]
weideng.append(weid)
# ###################################################
datatoudeng = []
dataweideng = []
#去掉起点id
for i in range(len(toudeng)):
a = toudeng[i][0][1::]
b = toudeng[i][1][1::]
c = toudeng[i][2][1::]
d = [a]+[b]+[c]
datatoudeng.append(d)
for i in range(len(weideng)):
a1 = weideng[i][0][1::]
b1 = weideng[i][1][1::]
c1 = weideng[i][2][1::]
d1 = [a1]+[b1]+[c1]
dataweideng.append(d1)
# print(dataweideng)
####################################################################
#判断管径信息是否加进列表,若未加进则只为x,y坐标,为偶数
for i in range(len(dataweideng)):
a = dataweideng[i]
assert len(a[0])%2==1
assert len(a[1])%2==1
assert len(a[2])%2==1
for i in range(len(datatoudeng)):
a = datatoudeng[i]
assert len(a[0])%2==1
assert len(a[1])%2==1
assert len(a[2])%2==1
finaldata = datatoudeng +dataweideng#未插值
final = datatoudeng #所有分叉,头等分叉,尾等分叉
####################################
#在相邻两坐标之间最大的两点插值
finalinsert = []
for i in range(len(final)):
a = np.array(final[i])
datab = []
for j in range(len(a)):
b = np.array(a[j])
# print(b)###
lenlist = len(b)
halflen = lenlist//2
chalist = []
for k in range(halflen-1):
cha =abs( b[k+1]-b[k])
chalist.append(cha)
# print(chalist)
listmax = max(chalist)
indexmax = chalist.index(listmax)
# print(indexmax)
startx = b[indexmax]
stopx = b[indexmax+1]
starty = b[indexmax+halflen]
stopy = b[indexmax+halflen+1]
insertcount = (65-lenlist)//2#25,65数据维度(-1,3,60,1)
insertx = np.linspace(startx,stopx,insertcount)
# print(np.isnan(insertx).sum())
if b[indexmax]==b[indexmax+1] :#问题出在此处,相等的话插值得到的y坐标点都是nan
b[indexmax+1] = b[indexmax+1]+1
f = lagrange([b[indexmax],b[indexmax+1]],[b[indexmax+halflen],b[indexmax+halflen+1]])
inserty = f(insertx)
else:
f = lagrange([b[indexmax],b[indexmax+1]],[b[indexmax+halflen],b[indexmax+halflen+1]])
inserty = f(insertx)
# print(np.isnan(inserty))
b = b.tolist()
for filex in insertx[::-1][1:-1]:
b.insert(indexmax+1,filex)
for filey in inserty[::-1][1:-1]:
b.insert((halflen+indexmax+len(insertx[::-1][1:-1])+1),filey)
datab.append(b)
finalinsert.append(datab)
final = np.array(finalinsert)
print(final.shape)
print(np.max(final))
print(np.min(final))
# print(final)
#########################################################
#归一化前可视化单张图片
# for i in range(len(final)):
# # plt.figure(figsize=(128,128),dpi=1)
# plt.plot(final[i][0][0:30],final[i][0][30:60])
# plt.plot(final[i][1][0:30],final[i][1][30:60])
# plt.plot(final[i][2][0:30],final[i][2][30:60])
# # plt.axis('off')
# plt.show()
# plt.savefig('C:\\Users\\Administrator\\Desktop\\调整分辨率\\原始图\\resouce%d.jpg' %(i),dpi=1)
# plt.close()
#########################################################
#归一化前可视化血管网络
# finaldata = final
# lx = []
# ly = []
# for i in range(len(finaldata)):
# a = finaldata[i][0]
# b = finaldata[i][1]
# c = finaldata[i][2]
# lx.append(a[0:len(a)//2])
# ly.append(a[len(a)//2:-1])
# lx.append(b[0:len(b)//2])
# ly.append(b[len(b)//2:-1])
# lx.append(c[0:len(c)//2])
# ly.append(c[len(c)//2:-1])
# # plt.figure(figsize=(1280,1280),dpi=1)
# for i in range(len(lx)):
# plt.plot(lx[i],ly[i])
# plt.axis('off')
# plt.show()
# plt.close()
#########################################
# final = final[0:1,:,:]#抽取一个分叉可视化旋转效果
x = final[:,:,0:30]
y = final[:,:,30:60]
diam = final[:,:,-1]
diam = diam.reshape(-1,3,1)
# x = final[:,:,0:10]
# y = final[:,:,10:20]
#########################################
#旋转
def rotate(angle,valuex,valuey):
rotatex = math.cos(angle)*valuex -math.sin(angle)*valuey
rotatey = math.cos(angle)*valuey + math.sin(angle)* valuex
return rotatex,rotatey
rotatedata = []
for i in range(0,360,3): #每隔3度旋转一次
x1,y1 = rotate(i,x,y)
rotate_final = np.concatenate((x1,y1,diam),axis=2)
rotatedata.append(rotate_final)
finaldata = []
for file in rotatedata:
for data in file:
finaldata.append(data)
finaldata = np.array(finaldata)
max1 = np.max(finaldata)
min1 = np.min(finaldata)
print(max1)
print(min1)
###########################################################################
#归一化后可视化单张图片
# final = finaldata
# for i in range(len(final)):
# # plt.figure(figsize=(128,128),dpi=1)
# plt.plot(final[i][0][0:30],final[i][0][30:60])
# plt.plot(final[i][1][0:30],final[i][1][30:60])
# plt.plot(final[i][2][0:30],final[i][2][30:60])
# # plt.axis('off')
# plt.show()
# plt.savefig('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\原始图\\resouce%d.jpg' %(i),dpi=1)
# plt.close()
##########################################################################
#归一化处理去除管径信息
# finalSubCAM = []
# # final = finaldata
# for i in range(len(final)):
# finalx = final[i][:,0:30]#(7,10,30)
# finaly = final[i][:,30:60]#(10,30,60)
# Xmax = np.max(finalx)
# Xmin = np.min(finalx)
# Ymax = np.max(finaly)
# Ymin = np.min(finaly)
# normx = (finalx-Xmin)/(Xmax-Xmin)
# normy = (finaly-Ymin)/(Ymax-Ymin)
# normxy = np.concatenate((normx,normy),axis=1)
# finalSubCAM.append(normxy)
# finaldata = np.array(finalSubCAM)
# print(finaldata.shape)
###################################################
#加入管径信息
# guanjing = final[:,:,-1]
# guanjing = guanjing.reshape(-1,3,1)
# guan_max = np.max(guanjing)
# guan_min = np.min(guanjing)
# guanjing = (guanjing-guan_min)/(guan_max-guan_min)
# final = np.concatenate((finaldata,guanjing),axis=2)
# print("管径最大值:%.4f,管径最小值:%.4f" % (guan_max,guan_min))#min 10.94, max 193.41 cha 182.47
# print(final.shape)
####################################################
#归一化处理不去除管径信息
finalSubCAM = []
final = finaldata
for i in range(len(final)):
finalx = final[i][:,0:30]#(7,10,30)
finaly = final[i][:,30:60]#(10,30,60)
diameter = final[i][:,-1]
diameter = diameter.reshape(3,1)
Xmax = np.max(finalx)
Xmin = np.min(finalx)
Ymax = np.max(finaly)
Ymin = np.min(finaly)
Dmax = np.max(diameter)
Dmin = np.min(diameter)
normx = (finalx-Xmin)/(Xmax-Xmin)
normy = (finaly-Ymin)/(Ymax-Ymin)
normd = (diameter-Dmin)/(Dmax-Dmin)
normxy = np.concatenate((normx,normy,diameter),axis=1) #加入原始管径,或归一化管径normd
finalSubCAM.append(normxy)
finaldata = np.array(finalSubCAM)
np.random.shuffle(finaldata)
print(finaldata.shape)
##############################################
np.save('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\final37a.npy',finaldata)
###################################################################
#带有管径信息保存图片
# for i in range(len(finaldata)):
# plt.figure(figsize=(128,128),dpi=1)
# width0 = np.log(finaldata[i][0][-1])
# width1 = np.log(finaldata[i][1][-1])
# width2 = np.log(finaldata[i][2][-1])
# plt.plot(finaldata[i][0][0:30],finaldata[i][0][30:60],color='blue',linewidth=width0*100)
# plt.plot(finaldata[i][1][0:30],finaldata[i][1][30:60],color='red',linewidth=width1*100)
# plt.plot(finaldata[i][2][0:30],finaldata[i][2][30:60],color='green',linewidth=width2*100)
# plt.axis('off')
# # plt.show()
# plt.savefig('C:\\Users\\Administrator\\Desktop\\DCGAN训练集\\data%d.jpg' %(i),dpi=1)
# plt.close()
# print("结束")
####################################################################
#归一化后可视化单张图片
# print("归一后")
# data_images=finaldata
# for i in range(len(finaldata)):
# plt.figure(figsize=(128,128),dpi=1)
# plt.plot(data_images[i][0][0:30],data_images[i][0][30:60],color='blue',linewidth=300)
# plt.plot(data_images[i][1][0:30],data_images[i][1][30:60],color='red',linewidth=300)
# plt.plot(data_images[i][2][0:30],data_images[i][2][30:60],color='green',linewidth=300)
# plt.axis('off')
# # plt.show()
# plt.savefig('C:\\Users\\Administrator\\Desktop\\分叉图\\resouce%d.jpg' %(i),dpi=1)
# plt.close()
####################################################################
# 可视化旋转效果(未加管径可视化)
# final = finaldata
# print(finaldata[0])
# for file in final:
# lenth0 = len(file[0])
# lenth1 = len(file[1])
# lenth2 = len(file[2])
# ban0 = lenth0 // 2
# ban1 = lenth1 // 2
# ban2 = lenth2 // 2
# plt.plot(file[0][0:ban0],file[0][ban0:lenth0])
# plt.plot(file[1][0:ban1],file[1][ban1:lenth1])
# plt.plot(file[2][0:ban2],file[2][ban2:lenth2])
# plt.show()
##########################################
# 可视化旋转效果(加入管径可视化)
# final = finalnorm
# final = finaldata
# for file in final:
# lenth0 = len(file[0])-1
# lenth1 = len(file[1])-1
# lenth2 = len(file[2])-1
# ban0 = lenth0 // 2
# ban1 = lenth1 // 2
# ban2 = lenth2 // 2
# plt.plot(file[0][0:ban0],file[0][ban0:lenth0])
# plt.plot(file[1][0:ban1],file[1][ban1:lenth1])
# plt.plot(file[2][0:ban2],file[2][ban2:lenth2])
# plt.show()
#####################################################
#每100张图片显示在一张图中
# rows,cols = 10, 10
# fig,axs = plt.subplots(rows,cols)
# cnt = 0
# for i in range(rows):
# for j in range(cols):
# xy = finaldata[cnt]#第n个分叉图,有三个分支,每个分支21个数
# for k in range(len(xy)):
# x = xy[k][0:30]
# y = xy[k][30:60]
# axs[i,j].plot(x,y,linewidth=2)
# axs[i,j].axis('off')
# cnt +=1
# plt.show()