Wykrywanie liczby przędz na obrazie tkaniny

12

Jestem początkującym użytkownikiem w przetwarzaniu obrazu i pracuję nad projektem w celu ustalenia liczby przędz w obrazie tkaniny, tj. Osnowy i wątków (przędzy prostopadłe i równoległe do osi x).

przykładowy obraz

Próbuję wykryć przędzę, biorąc sumę kolumn i wierszy odpowiednio dla osnowy i wątku, ale to nie wydaje się działać, ponieważ obraz nie jest zbyt dobrze zogniskowany i ostry. Również metoda jest bardzo wrażliwa na wyrównanie przędzy w tkaninie.

Jeśli to możliwe, zaproponuj lepszy algorytm do wykrywania przędzy. Również jeśli istnieje możliwość prostowania przędzy dla każdego uchwyconego obrazu. Próbowałem IMROTATE, ale tworzy czarne obszary obrazu, co zakłóca sumę wierszy i algorytm nie działa.

Każda pomoc w tym zakresie będzie dla mnie bardzo cenna. Dzięki.


źródło
Użyj FFT. Czy to zadanie domowe?
endolith
Tak, transformacja Fouriera jest prawdopodobnie poprawnym punktem początkowym. „Wyciągnęłoby” regularność obrazu z rozmycia. Nie jestem jednak pewien, jak poradzić sobie z częściowym obrotem. Może mógłbyś przekształcić paski i zanotować ich fazę, a następnie ustalić, czy sąsiednie paski były pochylone w lewo czy w prawo.
Daniel R Hicks,

Odpowiedzi:

9

Przekształcenie Fouriera da ci okres dowolnych okresowych cech na obrazie - np. Powie ci, że istnieje zdarzenie struktury 3 piksele w poziomie i 5 pikseli w pionie, z tego i skali pikseli możesz obliczyć liczbę przędz

Martin Beckett
źródło
3

Niektóre kody w Mathematica:

i = ColorNegate@Import@"http://i.stack.imgur.com/Jlhgw.jpg";
i3 = DeleteSmallComponents[Binarize[i, .4], 10];
lines = ImageLines[i3, .6];
Show[i, Graphics[{Thick, Orange, Line /@ lines}]]
(*y coord mean increments at x=0 *)
b = Mean@Differences@ Sort[(#[[2, 1]] #[[1, 2]] - #[[1, 1]] #[[2, 2]])/(#[[1,1]] - #[[2, 1]]) & /@ lines];
(*mean slope*)
a = Mean[-(-#[[1, 2]] + #[[2, 2]])/(#[[1, 1]] - #[[2, 1]]) & /@ lines];
(*Threads*)
- a ImageDimensions[i3][[1]]/b 
(*yarns*)
2 ImageDimensions[i3][[2]]/b

Wynik>

wprowadź opis zdjęcia tutaj

34,5541
27,2259

Dr Belizariusz
źródło
1
Byłoby miło, gdybyś wyjaśnił, co robisz w tym kodzie.
Abid Rahman K