Autor Wątek: Mierzenie złożoności obrazu.  (Przeczytany 1425 razy)

Offline L

  • Użytkownik

# Grudzień 15, 2016, 17:19:08
Hej,
stanąłem przed pewnym wyzwaniem polegającym na określeniu złożoności obrazu składającego się z krzwych. Konkretnie chodzi o sprawdzenie ile obraz zawiera detali, drobnych elementów. Obrazy te są maksymalnie 6 kolorowe bez żadnych przejść. Jakiś pomysł jak napisać algorytm, który będzie wyznaczał tę złożoność w skali %? Mam dostęp jedynie do danych na temat pixeli.

Cheers.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline koirat

  • Użytkownik

# Grudzień 15, 2016, 17:29:42
Może flood-fill ? Dzieki czemu będziesz w stanie wyodrębnić pojedyncze elementy. Ich ilość może być jakimś kryterium.

Offline mwojt

  • Użytkownik

# Grudzień 15, 2016, 17:39:32
Może Transformata Fouriera ? http://lodev.org/cgtutor/fourier.html

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Grudzień 16, 2016, 19:28:28
Przydałoby się lepiej zdefiniować tę złożoność. Możesz pokazać przykłady takich obrazów? Chodzi na przykład o to, czy liczy się bardziej ilość tych krzywych, ich wielkość, czy może różnorodność kolorów?

Na początek możesz zastosować filtr wykrywający krawędzie. Wtedy zliczając wynikowe piksele możesz obliczyć, jak dużo jest na obrazie zmian koloru w stosunku do plam o jednolitym kolorze.

Offline L

  • Użytkownik

# Grudzień 20, 2016, 13:09:32
@Reg, ogólnie chodzi o logo różnych firm i produkcję naszywek. Weźmy logo Google'a: https://qph.ec.quoracdn.net/main-qimg-92b6c82469eba49abe6f2ad2b4865a87, to zwykła litera G, szczegółowość dosyć niska więc równie niski będzie koszt produkcji matrycy. Natomiast z drugiej strony mamy powiedzmy to: http://www.gamerassaultweekly.com/wp-content/uploads/2016/05/3062164-kojima1.jpg, wysoka szczegółowość, dużo drobnych elementów 0.3-0.9mm.

Różnorodność kolorów jest istotna, jednak nie na etapie samej analizy, bo jest znana już na początku i uwzględniana automatycznie. Problem robi się z drobnymi szczegółami, czy też jakimiś bardzo małymi literami.

Cheers.

Offline koirat

  • Użytkownik

# Grudzień 20, 2016, 17:53:56
Jeśli chodzi o proste rozwiązania:

Możesz spróbować np: operacji morfologicznych na obrazach, takich jak erozja.
Po zastosowaniu erozji sprawdzasz jak dużo pikseli zniknęło w stosunku do całkowitej ilości pikseli tworzących obiekt.

Offline mwojt

  • Użytkownik

# Grudzień 20, 2016, 19:14:11
W takim przypadku można spróbować filtrów typu sobel i zsumować białe piksele, albo np. przelecieć przez wszystkie piksele i zliczać różnicę między kolejnymi. To by było chyba najprostsze.