Я пытаюсь вычислить пустую область изображения для изображения культуры клеток.
После максимального объединения и порогового значения я получил точки данных, которые указывают на пустые места.
Вот мойкод для этого,
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 ссылка на переменные
Любая помощь приветствуется. Спасибо всем!