https://www.cnblogs.com/beginner-boy/p/7239696.html
import xlwt
book = xlwt.Workbook(encoding='utf-8',style_compression=0)
sheet = book.add_sheet('mysheet',cell_overwrite_ok=True)
for i in range(4):
for j in range(5):
sheet.write(i,j,'myText')
print("结束")
book.save('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\test.xls')
from datetime import datetime
import os
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
import math
import xlwt
from six.moves import xrange
data = np.load('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\txt\\头不旋转.npy')
arr = data[0:100,:,0:60]
# arr = [[[1,2,3,3,3,3],[4,5,6,4,4,4],[7,8,9,7,7,7]]]
# arr = np.array(arr)
def getLen(x1,y1,x2,y2):
diff_x = (x1-x2)**2
diff_y = (y1-y2)**2
length = math.sqrt(diff_x+diff_y)
return length
len_arr = []
wanqu = []
for i in range(len(arr)):
len1 = []
wanqu1 = []
for j in range(len(arr[i])):
halfLen = len(arr[i][j])//2
arrLen = [] #数组中相邻坐标点的长度
#两端点的长度
duandian = getLen(arr[i][j][0],arr[i][j][30],arr[i][j][29],arr[i][j][59])
for k in range(halfLen-1):
x1 = arr[i][j][k]
x2 = arr[i][j][k+1]
y1 = arr[i][j][k+halfLen]
y2 = arr[i][j][k+halfLen+1]
lineLen = getLen(x1,y1,x2,y2) #两点之间的长度
arrLen.append(lineLen)
#曲线的长度
lenSum = 0.
for n in range(len(arrLen)):
lenSum = arrLen[n] + lenSum
wanqu2 = lenSum / duandian
wanqu1.append(wanqu2)
len1.append(lenSum)
len_arr.append(len1)
wanqu.append(wanqu1)
def getAngle(a,b,c):
cos_angle = (a**2 +b**2-c**2)/2*b*c
angle = np.arccos(cos_angle)
angle1 = angle*180/np.pi
return angle1
angle = []
for i in range(len(arr)):
x11 = arr[i][0][15]
y11 = arr[i][0][45]
x22 = arr[i][0][29]
y22 = arr[i][0][59]
x33 = arr[i][1][15]
y33 = arr[i][1][45]
x44 = arr[i][2][15]
y44 = arr[i][2][45]
x12 = getLen(x11,y11,x22,y22)
x23 = getLen(x22,y22,x33,y33)
x24 = getLen(x22,y22,x44,y44)
x13 = getLen(x11,y11,x33,y33)
x14 = getLen(x11,y11,x44,y44)
x34 = getLen(x33,y33,x44,y44)
angle13 = getAngle(x12,x23,x13)
angle14 = getAngle(x12,x24,x14)
angle34 = getAngle(x23,x24,x34)
anglehe = [angle13,angle14,angle34]
angle.append(anglehe)
#打印数组中曲线长度
book = xlwt.Workbook(encoding='utf-8',style_compression=0)
sheet = book.add_sheet('mysheet',cell_overwrite_ok=True)
zhuti = ["主分叉长度","左分叉长度","右分叉长度","主左长度比","主右长度比","主分叉弯曲度","左分叉卷曲度","右分叉卷曲度","主左角度","主右角度","左右角度"]
for i in range(len(zhuti)):
sheet.write(0,i,zhuti[i])
for i in range(1,len(len_arr)):
# print("第%d个图" % i)
# for j in range(len(len_arr[i])):
bili1 = len_arr[i][0]/len_arr[i][1]
bili2 = len_arr[i][0]/len_arr[i][2]
suoyou = [len_arr[i][0],len_arr[i][1],len_arr[i][2],bili1,bili2,wanqu[i][0],wanqu[i][1],wanqu[i][2],angle[i][0],angle[i][1],angle[i][2]]
for j in range(len(suoyou)):
sheet.write(i,j,suoyou[j])
book.save('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\原始图数据.xls')
# with open("C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\a.txt",'a') as f:
# # f.write("主分叉长度\t左分叉长度\t右分叉长度\t主左长度比\t主右长度比\t主分叉弯曲度\t左分叉卷曲度\t右分叉卷曲度\t主左角度\t主右角度\t左右角度\n")
# f.write("%f %f %f %f %f %f %f %f %f %f %f \n " % (len_arr[i][0],len_arr[i][1],len_arr[i][2],bili1,bili2,wanqu[i][0],wanqu[i][1],wanqu[i][2],angle[i][0],angle[i][1],angle[i][2]))
# # print("第%d个图,第%d个分支,长度1: %f,弯曲度: %f,角度: %f" % (i,j,len_arr[i][j],wanqu[i][j],angle[i][j]))
print("结束")
#可视化图像
# data_images = arr
# for i in range(10):
# plt.figure(figsize=(100,100),dpi=1)
# plt.plot(data_images[i][0][0:30],data_images[i][0][30:60],color='blue',linewidth=150)
# plt.plot(data_images[i][1][0:30],data_images[i][1][30:60],color='red',linewidth=150)
# plt.plot(data_images[i][2][0:30],data_images[i][2][30:60],color='green',linewidth=150)
# plt.axis('off')
# plt.show()
# # plt.savefig('C:\\Users\\Administrator\\Desktop\\调整分辨率\\原始图\\resouce%d.jpg' %(i),dpi=1)
# plt.close()