sobota, 13 czerwca 2009

Pokazywanie wyników detekcji z wykorzystaniem ImageMagick

Często po zakończonej detekcji potrzebujemy nanieść obiekt na obraz źródłowy, aby dokładnie zobaczyć czy dostaliśmy to o co nam chodziło. Jeśli sami piszemy program, np. w C++ możemy łatwo zmodyfikować odpowiednie piksele nadając im ustalony kolor i przeźroczystość. Pisałem jak to zrobić z wykorzystaniem CImg we wpisie Nanoszenie wyników detekcji na obraz źródłowy w CImg. Natomiast jeśli korzystamy z gotowego analizatora obrazu (np. Pandore) będziemy musieli poradzić sobie w inny sposób. Najlepszy w przypadku pracy w terminalu zapewne będzie ImageMagick. W Ubuntu instalujemy go poleceniem:
sudo apt-get install imagemagick

Najpierw na obrazie reprezentującym obiekt ustawiamy tło jako przeźroczyste, a resztę wypełniamy wybranym kolorem:
convert ConnectedThresholdWhiteTest.png -colorize "0,255,255" -transparent black ConnectedThresholdWhiteTest-mask.png




Następnie nanosimy przygotowany obraz na obraz źródłowy, zadając przeźroczystość na poziomie 30%:
composite ConnectedThresholdWhiteTest-mask.png BrainT1Slice.png -compose src-over -blend 30 BrainT1Slice-result1.png




Opcjonalnie na koniec możemy dodać informacje liczbowe dotyczące wyniku detekcji:
convert BrainT1Slice-result1.png -fill '#ff03' -draw 'rectangle 5,5,114,22' -fill white -annotate +10+18 'Statistics: xx' BrainT1Slice-result2.png




Zaprezentowane podejście świetnie się sprawdza dla dużej ilości obrazów oraz w przypadku, gdy tego typu operacje wykonywane są bardzo często. Odpowiednio przygotowany skrypt w Bashu wykona za nas wszystkie operacje.

0 komentarze:

Prześlij komentarz