Detekcja ruchu, zamiana obrazu na tekst

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: smiga »

U Ciebie właściwość ROI nie jest skojarzona z żadnym obrazkiem - kopiowałeś właściwość więc klikasz na nią prawym myszy i "link to"
Zerknij na przykład załączony.
Załączniki
ocr.txt
zmień rozszerzenie pliku na abc (forum nie przyjmuje plików z takim rozszerzeniem stąd ta zmiana)
(14.25 KiB) Pobrany 293 razy
plik zdjęcia do pobrania
plik zdjęcia do pobrania
ocr.jpg (28.89 KiB) Przejrzano 10217 razy
ocr1.vi
v8.5
(111.66 KiB) Pobrany 300 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: smiga »

W załączniku masz wspomniany przykład OCR First Example w bardziej zjadliwej formie (mam nadzieję)... oczywiście z zachowaną pełną funkcjonalnością
Załączniki
OCR First Example Folder.zip
v8.5
(34.34 KiB) Pobrany 298 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
Rimmer
Posty: 22
Rejestracja: 27 sty 2011 10:59
Wersja środowiska: LabVIEW 8.5

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: Rimmer »

Dzięki za przykład. Teraz wygląda to o wiele przyjaźniej.
Zrobiłem tak, jak radziłeś z ROI. Dowiązałem do niego z początku ścieżkę Image Out 1, jednak teraz program wypluwa mi błąd 1074396120 - IMAQ Vision: Not an image. Pogooglowałem i odkryłem, że problem jest związany z IMAQ ExtractColorPlane ( http://digital.ni.com/public.nsf/allkb/ ... 03006A74CB ). Tyle tylko, że ja nie używam tego bloku w sesji z OCR. Przy detektorze znajduje się wprawdzie funkcja ExtractSingleColorPlane, ale to nijak ma się do mojego przykładu. Czy to jest związane z faktem, że zamiast zapisanych obrazków przetwarzam podgląd z kamery?
Ostatnio zmieniony 18 cze 2011 17:00 przez Rimmer, łącznie zmieniany 1 raz.
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: smiga »

Na początku stworzyłeś 3 bufory na obrazy. Dwa pierwsze wypełniłeś obrazami funkcją Get Image, a co z 3?
Do pierwszego bloczka (z "Twojej grupy" OCR) przesyłasz referencję do pustego bufora, którego nazwałeś OCR. Wypełnić taki bufor obrazem możesz przez np. IMAQ Copy.
Możesz też wykorzystać jeden z wcześniejszych obrazów - np. img1 po odejmowaniu ... bo już go nie wykorzystujesz.
Wywal też IMAQ Read File z tej "gałęzi" OCR - przecież nie chcesz korzystać ze zdjęć - przyglądnij się mojemu przykładowi ocr1.vi - wszystko co jest w pętli while możesz przekopiować do swojego przykładu, ale to co jest przed nią już nie jest Ci potrzebne (czytanie pliku)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
Rimmer
Posty: 22
Rejestracja: 27 sty 2011 10:59
Wersja środowiska: LabVIEW 8.5

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: Rimmer »

Usunąłem trzeci bufor, skopiowałem while'a, podłączyłem się do Img2, zmieniłem ścieżkę dla pliku *abc, ustawiłem ROI na Image Out 2.

I nie wiem co dalej, bo mój sprzęt się zbuntował. Podgląd z kamery spod systemu wygląda tak, jak po lewej. Gdy próbuję przetworzyć obraz w LabVIEW, wszystko się przyciemnia (przy starszych aplikacjach również, choć jeszcze wczoraj wszystko działało jak powinno). Żeby było śmieszniej - podgląd systemowy wygląda wtedy tak samo.
darkcam.jpg
Program obecnie nie rozpoznaje znaków, ale nawet nie wiem czy to wina samego programu, czy buntującego się sprzętu. jeśli to drugie, to w weekend zacznę się z tym bawić, kiedy będę miał dostęp do sterowników i wszelkich instalek.
Ostatnio zmieniony 18 cze 2011 16:58 przez Rimmer, łącznie zmieniany 1 raz.
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: smiga »

Trudno mi powiedzieć co jest grane. W programie nie widzę większych problemów. Masz o jeden za dużo bloczek Imaq dispose - Imaq out 2 i Imaq out 3 to te same obrazki więc nie musisz dwa razy zamykać tej samej referencji. Po sprzątnięciu tych drobiazgów u mnie działa.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
Rimmer
Posty: 22
Rejestracja: 27 sty 2011 10:59
Wersja środowiska: LabVIEW 8.5

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: Rimmer »

Przeinstalowałem sterowniki i wszystko gra. Poprawiłem śmietniczki i program działa jak należy. Mam jednak inne pytanie.
Następnym etapem działania programu ma być przesyłanie danych do internetu. OCR ma pokazywać obecny stan licznika, a za pomocą detektora ma być tworzony log. Przykładowo:
21:33 - wykryto ruch
21:41 - przestano wykrywać ruch
21:42 - wykryto ruch
21:50 - przestano wykrywać ruch
Rozumiem, że najlepiej będzie zapisywać wszystko do plików, ale w których miejscach powinienem podłączyć Write To Measurment File? Zazwyczaj pracowałem nad prostymi programikami z odczytem jakiejś tam wartości (temperatura, napięcie itd), więc nie było przy nich wielkiej filozofii. Tutaj jednak konstrukcja jest nieco bardziej złożona.
Następna rzecz - warto bawić się w takim przypadku z Web Service czy dać sobie spokój i zrobić wszystko w PHP? Zaznaczam, że Javy nie znam. Czy WS ma w tym przypadku w ogóle jakieś przewagi nad bardziej tradycyjnym podejściem do tematu?
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: smiga »

Odnośnie zapisu, myślę że warto wyrzucić to do innej pętli, bo w tej sporo się już dzieje....chyba że prędkość analizowania obrazu kamery nie ma dla Ciebie znaczenia. Jeżeli jednak ma znaczenie to proponuję przy pomocy kolejki przekazywać dane do zapisu do pliku innej pętli (architektura producent-konsument). Właściwie OCR, jako operację czasochłonną, też bym wyrzucił do innej pętli, tym bardziej, że wykonujesz ją tylko gdy wykryjesz ruch - czyli wykrywanie ruchu powinno działać szybko ... chyba że nie.

Odnośnie Web Service to nie bawiłem się jeszcze tematem więc nie pomogę - proponuję założyć nowy wątek, więcej Kolegów z doświadczeniem zerknie.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
Rimmer
Posty: 22
Rejestracja: 27 sty 2011 10:59
Wersja środowiska: LabVIEW 8.5

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: Rimmer »

Przy obecnej konfiguracji nie mam problemów z prędkością działania. Z zapisem danych będę musiał się pobawić - w razie czego spróbuję właśnie z kolejkowaniem. Mam nadzieję, że to większych kłopotów mi nie przysporzy, ale w razie czego jeszcze się odezwę.
Awatar użytkownika
Rimmer
Posty: 22
Rejestracja: 27 sty 2011 10:59
Wersja środowiska: LabVIEW 8.5

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: Rimmer »

Powrót po latach!

Obejdzie się bez wrzucania informacji do netu, ale wystąpił inny problem. Czytnik OCR ma służyć jako licznik obrotów. Podstawową rzeczą jest zamiana wartości string na cyfrę. Pierwszą wartość (nazwijmy ją roboczo X) można by zapisać do systemu jakimś przyciskiem, a wyświetlacz w interfejsie mógłby po prostu zwracać wynik odejmowania X od wartości bieżącej (dajmy na to Y).

I teraz podstawowe pytanie - czy w obecnym programie jest to w ogóle możliwe? Nie wiem nawet, czy wartość da się przedstawić faktycznie jako liczbę. Reszta wydaje się już prostsza, choć od strony praktycznej sam nie bardzo wiem, jak się za to zabrać.
smiglo
Posty: 110
Rejestracja: 18 sty 2006 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Detekcja ruchu, zamiana obrazu na tekst

Post autor: smiglo »

Jeśłi dobrze zrozumiałem intencje autora:
zamiana stringa na liczbę: paleta String->string/number conversion.
zapamiętywanie wartości: tutaj chyba shift register.

W załączniku przykład zastosowania.
Załączniki
ex.vi
(6.86 KiB) Pobrany 288 razy
smiglo
Awatar użytkownika
Rimmer
Posty: 22
Rejestracja: 27 sty 2011 10:59
Wersja środowiska: LabVIEW 8.5

Detekcja ruchu, zamiana obrazu na tekst

Post autor: Rimmer »

Przerobiłem programik i wszystko działa jak należy. Wielkie dzięki, w końcu końcu wszystko zrobione.
ODPOWIEDZ