Ich habe einige Daten und die Dimension ist 249X250. Ich habe den folgenden Code zum Plotten der Daten verwendet:Die Anzahl der angeschlossenen Pixel ist kleiner als eine bestimmte Anzahl an Schwellenwerten.
import numpy as np
import pandas as pd
import matplotlib.pyplot as pl
data = pd.read_excel("sample_data.xlsx")
x = np.arange(data.shape[0])
y = np.arange(data.shape[1])
mask_data = np.ma.masked_outside(data,0,233)
pl.contourf(y,x,mask_data)
pl.colorbar()
und die Handlung kam so:
Jetzt möchte ich die kleineren Flecken auf der rechten Seite des Grundstücks entfernen und Ich möchte nur die größten Patches behalten. Zu diesem Zweck besteht meine Logik darin, diejenigen verbundenen Pixel zu entfernen, bei denen die Anzahl der verbundenen Pixel geringer ist als ein bestimmter Schwellenwert (zu diesem Zweck ist es 200). Wie kann ich das machen?
https://www.learnopencv.com/blob-detection- using-opencv-python-c/ – f5r5e5d
Aber ich habe die Daten in der Excel-Datei. Es ist kein Bild. – sam
Sie haben 'data',' masked_data', wenn Sie von 'masked_data' arbeiten wollen, sieht es aus wie' masked_data.fill (255) 'würde es in ein reguläres np.array umwandeln, vielleicht müssen Sie auch nach uint8 umwandeln: 'np.array (data, dtype = np.uint8)' - dann sollte es von Bildverarbeitungsfunktionen als Graustufenbild erkannt werden – f5r5e5d