Gavin
2021-02-04 4e5aaefc7162b700b95c750caeff35e6323631d3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#-*- coding:utf-8 -*-
# 计算点到标准轮廓距离的极性
 
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import cv2
 
data = pd.read_csv("D:\\result.csv")
standard = pd.read_csv("D:\\standard.csv")
dataArray = np.array(data)[:,0:2:1]*1000
standardArray = np.array(standard)*1000
 
polarity = np.array([0])
 
for index in range(0,dataArray.shape[0],1):
    temp = cv2.pointPolygonTest(standardArray.astype(int),tuple(dataArray[index,:]),False)
    polarity =np.r_[polarity,temp]
 
polarity = np.delete(polarity.reshape(1,-1).transpose(),0,0)
polarityDistance = np.array(data)[:,2] * polarity.reshape(1,-1)
 
newData = np.array(data)[:,0:2:1]
newData = np.c_[newData,polarityDistance.transpose()]
 
polarityData = pd.DataFrame(newData).sort_values(by=0)
polarityData.to_csv("D:\\polarity.csv",header = False, index = False)