Punktwolke nach HSV-Werten filtern ohne Graustufen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
mediamarc
User
Beiträge: 18
Registriert: Freitag 1. Juli 2022, 09:24

Hallo zusammen, ich habe folgendes Problem:

ich habe eine Punktwolke mit HSV-Werten und möchte dabei alles außer grüne Punkte herausfiltern, um so die Vegetation zu filtern. Nun weiß ich nicht welche S- und V-Werte ich wählen soll, um dies ohne Graustufen zu schaffen.

Hier der Code:

Code: Alles auswählen

import pandas

df = pandas.read_csv('/home/bodenkunde/Schreibtisch/TraubenkirscheHSV.txt', sep=" ", header=None)
print(df)
df2 = df.set_axis(['X', 'Y', 'Z', 'R', 'G', 'B', 'Nx', 'Ny', 'Nz', 'H', 'S', 'V'], axis=1, inplace=False)
df3 = df2[(df2.H >= 60) & (df2.H <= 180) & (df2.S >= 20) & (df2.S <= 80) & (df2.V >= 20) & (df2.V <= 80)]

df3.to_csv(r'/home/bodenkunde/Schreibtisch/TraubenkirscheHSVGefiltertHSV2.txt', header=None, index=None, sep=' ', mode='a')
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Nach oben müsstest du die S-Werte vermutlich nicht begrenzen, da dies ja immer nur sattere Farben ergibt. Die V-Werte sind ebenfalls nur nach unten zu begrenzen, um schwarz auszuschließen. Da hilft dann nur ausprobieren, was für dich gute Ergebnisse liefert. Ein Bild vom HSV-Farbraum verdeutlicht das ganz gut:
Bild
mediamarc
User
Beiträge: 18
Registriert: Freitag 1. Juli 2022, 09:24

Vielen Dank für deine schnelle Antwort. Das mit dem nach unten begrenzen der S- und V-Werte hat sehr gut funktioniert.
Antworten