Как рассчитать площадь, которую центор покрывает с помощью Python? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь вычислить пустую область изображения для изображения культуры клеток.

После максимального объединения и порогового значения я получил точки данных, которые указывают на пустые места.

Вот мойкод для этого,

import numpy as np
import matplotlib.pyplot as plt
import cv2
import pandas as pd 
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split

df = pd.read_csv('foto9.csv')

X = df[['x','y']].values
y = df['L'].values


from sklearn import preprocessing
from sklearn.preprocessing import OneHotEncoder
le = preprocessing.LabelEncoder()

y = le.fit_transform(y)


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=42)

# Create a SVC classifier using an RBF kernel
svm = SVC(kernel='rbf', random_state=0, gamma=100, C=1)

svm.fit(X_train, y_train) 

# Visualize the decision boundaries
# create a mesh to plot in

y = y_test

h=1

x_min, x_max = X_test[:, 0].min() - 1, X_test[:, 0].max() + 1
y_min, y_max = X_test[:, 1].min() - 1, X_test[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
                     np.arange(y_min, y_max, h))



Z = svm.predict(np.c_[xx.ravel(), yy.ravel()])

# Put the result into a color plot
Z = Z.reshape(xx.shape)

print(xx.shape)
print(yy.shape)
print(Z.shape)

plt.contourf(xx, yy, Z, cmap=plt.cm.coolwarm, alpha=1)

plt.show()

Этот код составляет этот график

Что я хочу сделать, это вычислить область, которую точки данных покрывают относительно всей области. Эти точки покрывают пустое пространство, но не в масштабе. Можно ли провести линию через крайние внешние точки и рассчитать площадь внутри нее?

Надеюсь, я достаточно ясно дал понять.

Я оставляю ссылку на файлы переменных .npy, чтобылюбой хочет попробовать. Dropbox ссылка на переменные

Любая помощь приветствуется. Спасибо всем!

...