Wiem, że ten problem został rozwiązany wcześniej, ale miałem duże trudności ze znalezieniem literatury opisującej algorytmy używane do przetwarzania tego rodzaju danych. Zasadniczo robię kilka odkryć krawędzi na zbiorze danych 2D. Chcę być w stanie znaleźć kilka punktów na diagramie oka (zwykle używanym do zakwalifikowania szybkich systemów komunikacyjnych), a ponieważ nie miałem doświadczenia w przetwarzaniu obrazu, staram się pisać skuteczne metody.Efektywne wykrywanie krawędzi 2D w Pythonie
Jak widać, diagramy te są tak nazywane, ponieważ przypominają ludzkie oko. Mogą one znacznie różnić się grubością, nachyleniem i szumem, w zależności od sygnału i testowanego systemu. Pomiary, które zwykle są wykonywane, to jitter (pozioma grubość obszaru przejścia) i wysokość oka (mierzone albo w określonej określonej procentowej szerokości, albo w maksymalnym możliwym punkcie). Wiem, że najlepiej można to zrobić przy przetwarzaniu obrazu, a nie w bardziej linearnym podejściu, ponieważ moje dotychczasowe próby trwają kilka sekund, aby znaleźć lewą stronę pierwszego skrzyżowania. Jakieś pomysły na to, jak powinienem to zrobić w Pythonie? Używam NumPy do wykonania niektórych operacji.
Oto niektóre example data, sformatowane jako tablica 1D z powiązanymi danymi osi X. W tym konkretnym przypadku powinien być podzielony co 666 punktów (2 * int ((1,0/2,5e9)/1,2e-12)), ponieważ szybkość sygnału wynosiła 2,5 GB/s, a czas między punktami był 1,2 ps.
Dzięki!
Twoja pasta danych nie działa poprawnie ... – so12311
Powinien być już naprawiony – bheklilr
Zakładając, że masz oryginalne dane użyte do wygenerowania wykresu, być może powinieneś odnieść większy sukces, używając tych danych bezpośrednio, niż analizując renderowany wykres. –