生成数据评估

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('data\生成数据3.npy') 
arr = data[0:1400,:,0:60]
def getLen(x1,y1,x2,y2):
    diff_x = (x1-x2)**2
    diff_y = (y1-y2)**2
    length = np.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*a*b)
    angle = np.arccos(cos_angle)
    angle1 = angle*180/np.pi
    return angle1
angle = []
for i in range(len(arr)):
    n = 29
    while(arr[i][0][n] == arr[i][0][n-1] and arr[i][0][n+30] == arr[i][0][n-1+30]):
        n = n-1
    n = n-1
    x11 = arr[i][0][n]
    y11 = arr[i][0][n+30]
    x22 = arr[i][0][29]#节点x
    y22 = arr[i][0][59]#节点y,x,y坐标相差30
    n1 = 0
    while(arr[i][1][n1] == arr[i][1][n1+1] and arr[i][1][n1+30] == arr[i][1][n1+1+30]):
        n1 = n1+1
    n1 = n1+1
    x33 = arr[i][1][n1]
    y33 = arr[i][1][n1+30]
    n2 = 0
    while(arr[i][2][n2] == arr[i][2][n2+1] and arr[i][2][n2+30] == arr[i][1][n2+1+30]):
        n2 = n2+1
    n2 = n2+1
    x44 = arr[i][2][n2]
    y44 = arr[i][2][n2+30]
    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)):
        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\\重新整理血管网络\\生成数据_3_1400.xls')
print("结束")
        
#可视化图像
# data_images = arr
# for i in range(1,len(arr)):
#     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.savefig('C:\\Users\\Administrator\\Desktop\\重新整理血管网络\\生成图95\\gen%d.jpg' %(i),dpi=1)
#     plt.close()
clear;
clc;
path1 = 'C:\Users\Administrator\Desktop\重新整理血管网络\原始数据1400.xls';
path2 = 'C:\Users\Administrator\Desktop\重新整理血管网络\原始数据2800.xls';
path3 = 'C:\Users\Administrator\Desktop\重新整理血管网络\生成数据1400.xls';
path4 = 'C:\Users\Administrator\Desktop\重新整理血管网络\生成数据_95_1400.xls';
path5 = 'C:\Users\Administrator\Desktop\重新整理血管网络\生成数据_3_1400.xls';

mypath1  = path1;
mypath2  = path4;
A = 'A2:A1400';
B = 'B2:B1400';
C = 'C2:C1400';
D = 'D2:D1400';
E = 'E2:E1400';
F = 'F2:F1400';
G = 'G2:G1400';
H = 'H2:H1400';
I = 'I2:I1400';
J = 'J2:J1400';
K = 'K2:K1400';
disp('主分支长度')
[num1] = xlsread(mypath1,A);
[num2] =  xlsread(mypath2,A);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左分支长度')
[num1] = xlsread(mypath1,B);
[num2] =  xlsread(mypath2,B);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('右分支长度')
[num1] = xlsread(mypath1,C);
[num2] =  xlsread(mypath2,C);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主左长度比')
[num1] = xlsread(mypath1,D);
[num2] =  xlsread(mypath2,D);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主右长度比')
[num1] = xlsread(mypath1,E);
[num2] =  xlsread(mypath2,E);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主分叉卷曲度')
[num1] = xlsread(mypath1,F);
[num2] =  xlsread(mypath2,F);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左分叉卷曲度')
[num1] = xlsread(mypath1,G);
[num2] =  xlsread(mypath2,G);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('右分叉卷曲度')
[num1] = xlsread(mypath1,H);
[num2] =  xlsread(mypath2,H);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主左角度')
[num1] = xlsread(mypath1,I);
[num2] =  xlsread(mypath2,I);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主右角度')
[num1] = xlsread(mypath1,J);
[num2] =  xlsread(mypath2,J);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左右角度')
[num1] = xlsread(mypath1,K);
[num2] =  xlsread(mypath2,K);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[h,p,ci] = ttest2(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);


猜你喜欢

转载自blog.csdn.net/qq_38826019/article/details/81198788
今日推荐