Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] porównywanie grafiki ( obrazów )
Forum PHP.pl > Forum > PHP
Cienki1980
Witam.
Ponieważ nigdy nie zagłębiałem się w tajniki biblioteki GD a teraz bym potrzebował chciałbym się was poradzić co do kwesti porównywania grafiki.
Założenie jest następujące.

Zostaje wprowadzone zdjęcie termowizyjne i należy je porównać z bazą zdjęć i znaleźć najbardziej zbliżone.
Zdjęcie wprowadzone i zdjęcia wzorcowe są tego samego formatu, tej samej rozdzielczości.


Sprawdzanie pixel po pixelu zbytnio nic nie da, a nie znalazlem żadnej funkcji w GD która porównywałaby dwa podane obrazy.

Macie jakieś pomysły questionmark.gif
sebik
witam, pisalem kiedys skrypty analizy obrazow termograficznych, ale to byly tylko zmiany geometryczne (skalowanie, przesuwanie itp) i rysowanie np. ROI w obrazie aby mozna bylo odczytac np. barwe-temperature. W kazdym razie robilem to piksel po pikselu. Nie wiem co chcesz porownywac, czy barwe, czy ksztalty ale w php to bedzie trwalo dluuugo. Ja robilem to na plikach png aby zachowac jakosc. Napisz dokladniej o co chodzi z tym porownaniem, moze bede mogl ci pomoc.
Cienki1980
Sebik: dzięki za odpowiedź .. wysłałem PRIV'a. Może coś poradzisz.
sebik
nie rozumiem tylko co ma byc wynikiem tego porownania? jesli bedziesz porownywal zdjecia obiektu dla jego roznych stanow eksploatacyjnych to beda sie glownie roznily barwa, chcesz wyciagnac jakies wielkosci statystyczne na podstawie roznic w barwie?
Cienki1980
Sebik: Porównanie ma mieć na celu tylko to, żeby wskazać do którego z obrazów wzorcowy jest podobny obraz badany.
Sytacja taka: Dodajesz obraz wzorcowy uszkodzeonego elementu wraz z opisem co jest uszkodzone. Tworzysz baze uszkodzeń wraz z naprawami. Potem skanujesz zdjęcie elementu, system porównuje obrazy i jeżeli znajdzie podobieństwo wyświetla sposób naprawy.
Prościej nie potrafię tego opisać.
cadavre
Czyli chcesz porównać kształt czy barwę? Czy oba?
Cienki1980
Cytat(cadavre @ 11.01.2007, 19:19:37 ) *
Czyli chcesz porównać kształt czy barwę? Czy oba?

Tylko i wyłącznie barwę ... kształt elementu się nie zmieni, jedynie jego temperatura czyli barwa.
Oczywiście z jakąś tolerancją.
_KuRT_
tu chyba pomóc może tylko sztuczna inteligencja, a bliżej to Rozpoznawanie Obrazów
php programmer
A może takie coś:

zakładamy że każdy z obrazów ma 256 kolorów,
zakładasz dwie tablice 256 elentowe,
jedziesz pętlą po każdym pixelu
najpierw pierwszego obrazka, potem drugiego,
sprawdzasz jaki ma kolor (czyli temperaturę),
jeśli ma kolor o numerze np 100
to zwiększasz wartość w tablicy na indeksie 100, etc
to samo robisz z drugim zjęciem i drugą tablicą,

następnie w pętli od 0 255 sprawdzasz
odpowiadające sobie indeksy w obu tablicach
jeśli różnica między nimi jest nie mniejsza niż np 2 (tolerancja)
to zwiększasz o jeden zmienną o nazwie $podobieństwo
jeśli po przejściu całej pętli (czyli do 256)
zmienna $podobieństwo osiągnie jakąś tam wartość
graniczną (np 200) to uznajesz że zdjęcie jest podobne

Stopień podobieństwa zależy od tego jaką ustalisz tolerancję
oraz wartość minimalną dla zmiennej wskazującej na $podobieństwo
Cienki1980
php programmer: całkiem słuszne rozwiązanie.

Ja właśnie wpadłem na pomysł żeby odwrócić kolory w jednym z obrazów ( albo wzorcowym , albo badanym ) i nałożyć je na siebie ... obrazy podobne powinny dać w wyniku cały czarny obraz ( plus minus jakieś niedoskonałości ).

Jeżeli będą jakieś różnice w obrazach, czarny kolor nie będzie występował w całym obrazie.

Dobrze kombinuje??
php programmer
Możliwe, że masz racje,
ale musisz to sprawdzić w praktyce,
bo to już trudno określić jak to naprawdę bedzię,
zresztą to co podałem wyżej to też tylko takie spekulacje
wymyślone przed chwilą
Cienki1980
W praktyce udało mi się osiągnąć zamierzony cel za pomocą odwracanych kolorów.

Jednak dalej szukam jakiegoś szybszego i może dokładniejszego sposobu.

Jeżeli ktoś ma jakąś koncepcje to z chęcią posłucham.

Podniosę wątek, może ktoś rzuci jakimś nowym pomysłem ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.