Program można pobrać ze strony: http://www.greyc.ensicaen.fr/~regis/Ariane/
piątek, 5 czerwca 2009
Ariane - interfejs graficzny dla Pandore
Etykiety:
pandore,
rekomendowane technologie
0
komentarze
Praca z analizatorem obrazu Pandore dla użytkowników przyzwyczajonych do aplikacji okienkowych może być uciążliwa. Wpisywanie kolejnych komend w okienku terminala nie wszystkim odpowiada i może szybko zniechęcić do używania tego narzędzia. Zdają sobie również z tego sprawę twórcy Pandore, dlatego przygotowali graficzną nakładkę Ariane wspomagającą konstruowanie algorytmów. Dzięki niej możemy łatwo projektować kolejne etapy przetwarzania obrazu łącząc ze sobą odpowiednie bloczki operacyjne. Z programem dodatkowo została zintegrowana pomoc, co dodatkowo upraszcza jego użytkowanie.

Program można pobrać ze strony: http://www.greyc.ensicaen.fr/~regis/Ariane/
Program można pobrać ze strony: http://www.greyc.ensicaen.fr/~regis/Ariane/
czwartek, 4 czerwca 2009
Detekcja ruchu w KDE
Etykiety:
kde,
linux,
OpenCV
0
komentarze
Ostatnio, zupełnie przypadkiem trafiłem na dwie wiadomości dotyczące wsparcia biblioteki OpenCV w KDE. Oczywiście celem prowadzonych prac ma być wykorzystanie detekcji ruchu przy interakcji użytkownika z systemem. We wpisie zamieszczonym na blogu DrIDk's dev autor proponuje wprowadzenie modnego ostatnio w konsolach sterowania za pomocą ruchu również do gier dostępnych w KDE. Druga wiadomość jest równie obiecująca i dotyczy interakcji z pulpitem. Na poniższym filmiku widać już pierwsze efekty:
Biorąc pod uwagę rosnącą ilość urządzeń korzystających z ekranów dotykowych (szczególnie w telefonach komórkowych) i coraz częściej montowane kamerki w laptopach, można się spodziewać, że w niedalekiej przyszłości klawiatura, a nawet myszka przestaną być wogóle używane.
Biorąc pod uwagę rosnącą ilość urządzeń korzystających z ekranów dotykowych (szczególnie w telefonach komórkowych) i coraz częściej montowane kamerki w laptopach, można się spodziewać, że w niedalekiej przyszłości klawiatura, a nawet myszka przestaną być wogóle używane.
środa, 3 czerwca 2009
Edycja video w CImg i ffmpeg
Etykiety:
cimg,
video
0
komentarze
Próba edycji pliku wideo z poziomu C++ może okazać się kłopotliwa jeśli nie korzystamy z dodatkowych bibliotek. Jak wiadomo standardów zapisu / kompresji multimediów jest naprawdę sporo i jeśli poradzilibyśmy sobie z jednym formatem to taką samą pracę należało by wykonać dla pozostałych. W Linuksie może nas w tym wyręczyć narzędzie ffmpeg i zbiór bibliotek, które są w nim zawarte (więcej można przeczytać na Wikipedii).
Aby napisać prosty przykład korzystający z ffmpeg trzeba poznać podstawy API bibliotek libavcodec oraz libavformat. Dla początkującego użytkownika może okazać się problematyczna analiza techniczna dokumentacji i niuansów związanych z kodekami video. Dlatego skorzystamy z innej biblioteki, która zawiera wsparcie dla ffmpeg, a mianowicie CImg (ta mała biblioteka nie przestaje mnie zaskakiwać swoimi możliwościami).
Na początek musimy się upewnić, że mamy zainstalowany pakiet ffmpeg. Możemy wydać polecenie instalacji i jeśli go nie będzie zostanie pobrany i zainstalowany:
Oczywiście będzie również potrzebny testowy film, który będziemy modyfikować. Ja korzystałem z Pixar "Yeti Dance" (Pixar-Yeti_Dance.mpeg).
Następnie przygotowujemy kod programu:
Kompilacja za pomocą pomocą polecenia:
Po uruchomieniu programu zobaczymy na ekranie zarówno obraz oryginalny, jak i zmodyfikowany:

Omówiony przykład jest bardzo prosty i nie pokazuje pełnych możliwości ffmpeg. Jednak na etapie projektowania algorytmu wykorzystanie biblioteki CImg może znacznie ułatwić przygotowanie działającego prototypu.
Aby napisać prosty przykład korzystający z ffmpeg trzeba poznać podstawy API bibliotek libavcodec oraz libavformat. Dla początkującego użytkownika może okazać się problematyczna analiza techniczna dokumentacji i niuansów związanych z kodekami video. Dlatego skorzystamy z innej biblioteki, która zawiera wsparcie dla ffmpeg, a mianowicie CImg (ta mała biblioteka nie przestaje mnie zaskakiwać swoimi możliwościami).
Na początek musimy się upewnić, że mamy zainstalowany pakiet ffmpeg. Możemy wydać polecenie instalacji i jeśli go nie będzie zostanie pobrany i zainstalowany:
sudo apt-get install ffmpeg
Oczywiście będzie również potrzebny testowy film, który będziemy modyfikować. Ja korzystałem z Pixar "Yeti Dance" (Pixar-Yeti_Dance.mpeg).
Następnie przygotowujemy kod programu:
#include <iostream>
#include <ostream>
#include "../CImg.h"
using namespace std;
using namespace cimg_library;
void process_frame(CImg<unsigned char> &frame)
{
//negatyw obrazu
cimg_forXYV(frame,x,y,v) { frame(x,y,v) = 255 - frame(x,y,v); }
}
int main()
{
CImgList<unsigned char> film;
film.load_ffmpeg("Pixar-Yeti_Dance.mpeg"); //odczyt z pliku
CImgDisplay disp_film1, disp_film2;
cimglist_for(film,index) {
film[index].display(disp_film1); //wyświetl oryginalną klatkę
process_frame( film[index] ); //nakładanie filtru
film[index].display(disp_film2); //wyświetl zmodyfikowaną klatkę
}
while (!disp_film1.is_closed) disp_film1.wait();
film.save_ffmpeg("Pixar-Yeti_Dance-invert.mpeg"); //zapis
return 0;
}
Kompilacja za pomocą pomocą polecenia:
g++ -o ffmpeg_test ffmpeg_test.cpp -lX11 -lpthread
Po uruchomieniu programu zobaczymy na ekranie zarówno obraz oryginalny, jak i zmodyfikowany:
Omówiony przykład jest bardzo prosty i nie pokazuje pełnych możliwości ffmpeg. Jednak na etapie projektowania algorytmu wykorzystanie biblioteki CImg może znacznie ułatwić przygotowanie działającego prototypu.
piątek, 29 maja 2009
Pomiary na obrazach przestrzennych
Etykiety:
pomiary
0
komentarze
Niezbędnym etapem procesu analizy obrazu są pomiary ilościowe. Dają one liczbową informację o cechach analizowanego obiektu lub grupy obiektów i w dalszym etapie mogą służyć do właściwej ich klasyfikacji.
W tym wpisie przyjrzymy się możliwościom omawianych wcześniej pakietów do wizualizacji w zakresie pomiarów i analizy obiektów na obrazach przestrzennych. Zostaną omówione dodatkowo dwa nowe programy (BioImageXD oraz ImageJ), które nie były jeszcze opisywane na tym blogu.
Slicer 3D posiada dedykowany moduł do liczenia statystyk LabelStatistics. Wykonuje on proste pomiary na obszarach wyznaczonych za pomocą modułu segmentacji. Możemy wyznaczyć liczbę punktów, wartość minimalną, maksymalną oraz średnią i odchylenie standardowe wskazanego obszaru.

ParaView rzadko jest wykorzystywany do pracy z obrazami przestrzennymi, dlatego nie ma wbudowanych mechanizmów do pomiarów. Ma on jednak dwa narzędzia, które mogą okazać się bardzo przydatne. Pierwszym z nich jest możliwość generowania dowolnych profili, co widać na poniższym obrazku.

Natomiast drugi to wyświetlanie histogramu:

Kolejny program - MeVisLab - posiada szereg narzędzi do pomiarów zarówno obrazów 2D jak i 3D. Poza statystykami również pozwala na wyświetlanie profili i histogramów.
Następne narzędzie to BioImageXD. Wbudowany moduł Analyze object zajmuje się zliczaniem obiektów i ich pomiarami. Niestety liczba parametrów, które są obliczane jest bardzo skromna.

Ostatnim prezentowanym programem jest ImageJ. Jego moduł do statystyk jest bardzo rozbudowany, jednak działa tylko dla obrazów 2D. Dla obrazów przestrzennych trzeba doinstalować dodatkową wtyczkę 3D Object Counter. Tutaj liczba parametrów jest znacznie mniejsza. Jego działanie można zobaczyć na poniższych zrzutach ekranu.


Podsumowując, żaden z prezentowanych programów nie ma pełnego modułu statystyk, który pozwalałby uzyskać satysfakcjonujący zestaw parametrów dla mierzonych obiektów. Wykonywanie obliczeń w kilku programach na raz nie jest ani wygodne, ani nie pozwala na wykonanie dużej serii pomiarów w sposób automatyczny.
W następnym wpisie przedstawię bibliotekę C++, która znacznie lepiej radzi sobie z obliczeniami, aniżeli prezentowane narzędzia okienkowe. Zapraszam.
W tym wpisie przyjrzymy się możliwościom omawianych wcześniej pakietów do wizualizacji w zakresie pomiarów i analizy obiektów na obrazach przestrzennych. Zostaną omówione dodatkowo dwa nowe programy (BioImageXD oraz ImageJ), które nie były jeszcze opisywane na tym blogu.
Slicer 3D posiada dedykowany moduł do liczenia statystyk LabelStatistics. Wykonuje on proste pomiary na obszarach wyznaczonych za pomocą modułu segmentacji. Możemy wyznaczyć liczbę punktów, wartość minimalną, maksymalną oraz średnią i odchylenie standardowe wskazanego obszaru.
ParaView rzadko jest wykorzystywany do pracy z obrazami przestrzennymi, dlatego nie ma wbudowanych mechanizmów do pomiarów. Ma on jednak dwa narzędzia, które mogą okazać się bardzo przydatne. Pierwszym z nich jest możliwość generowania dowolnych profili, co widać na poniższym obrazku.
Natomiast drugi to wyświetlanie histogramu:
Kolejny program - MeVisLab - posiada szereg narzędzi do pomiarów zarówno obrazów 2D jak i 3D. Poza statystykami również pozwala na wyświetlanie profili i histogramów.
Następne narzędzie to BioImageXD. Wbudowany moduł Analyze object zajmuje się zliczaniem obiektów i ich pomiarami. Niestety liczba parametrów, które są obliczane jest bardzo skromna.
Ostatnim prezentowanym programem jest ImageJ. Jego moduł do statystyk jest bardzo rozbudowany, jednak działa tylko dla obrazów 2D. Dla obrazów przestrzennych trzeba doinstalować dodatkową wtyczkę 3D Object Counter. Tutaj liczba parametrów jest znacznie mniejsza. Jego działanie można zobaczyć na poniższych zrzutach ekranu.
Podsumowując, żaden z prezentowanych programów nie ma pełnego modułu statystyk, który pozwalałby uzyskać satysfakcjonujący zestaw parametrów dla mierzonych obiektów. Wykonywanie obliczeń w kilku programach na raz nie jest ani wygodne, ani nie pozwala na wykonanie dużej serii pomiarów w sposób automatyczny.
W następnym wpisie przedstawię bibliotekę C++, która znacznie lepiej radzi sobie z obliczeniami, aniżeli prezentowane narzędzia okienkowe. Zapraszam.
Subskrybuj:
Posty (Atom)
