Jak przesłać obraz przez sieć Ethernet ?

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
pkruszyk
Posty: 11
Rejestracja: 01 kwie 2008 16:26
Lokalizacja: Wrocław/Bieganin
Kontakt:

Jak przesłać obraz przez sieć Ethernet ?

Post autor: pkruszyk »

Witam!!!
Mam problem z przesłaniem obrazu przez sieć Ethernet. Mianowiecie potrzebuje odbierać obraz na Konsumencie a kamerka jest podłączona do komputera-Serwera. Na serwerze mam obraz z tej kamerki. Używam LabView 8.2. Moje pytanie co należy zrobić aby mozna było odczytywać obraz na Konsumencie ponieważ typ zmiennej IMAQImage nie moge skonfigurować w Shared Variable. Dodam jeszcze ze wszystkie inne dane przesyłam za pomopą Shared Variable (nie za pomoca DataSocet).
Z góry dziękuje za pomoc. :D
Pozdrawiam!!!
pkruszyk
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Jak przesłać obraz przez sieć Ethernet ?

Post autor: Mikrobi »

Funkcja IMAQ Flatten Image to String konwertuje na string, może w tym kierunku?
jakie duże są obrazy które chcesz przesyłać?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
pkruszyk
Posty: 11
Rejestracja: 01 kwie 2008 16:26
Lokalizacja: Wrocław/Bieganin
Kontakt:

Jak przesłać obraz przez sieć Ethernet ?

Post autor: pkruszyk »

Wysyłam obrazy 320x240 1X 32-bit RGB. Próbowałem IMAQ Flatten Image to String ale nie moge znaleść bloczku który zamieniałby spowrotem na obraz. :(
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Jak przesłać obraz przez sieć Ethernet ?

Post autor: Mikrobi »

TypeCast, Numeric>> Data Manipulation, na wejście string, na Type: Image const.
Nie sprawdzałem,ale powinno zadziałać.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
pkruszyk
Posty: 11
Rejestracja: 01 kwie 2008 16:26
Lokalizacja: Wrocław/Bieganin
Kontakt:

Jak przesłać obraz przez sieć Ethernet ?

Post autor: pkruszyk »

Sprawdzłem zamienia spowrotem na obraz lecz go nie widać pusty ekran :( :( :( . Nie mam pojęcia co może być nie tak :( powinno działać a nie działa.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Jak przesłać obraz przez sieć Ethernet ?

Post autor: Mikrobi »

A próbowałeś zapisywać obrazek do pliku jpg i w innej pętli słać obrazek czytany z pliku np z opóźnieniem? Image z IMAQa chyba nie jest klasycznym typem danych LabVIEW.
Jest jeszcze jedna opcja: IMAQ Write String
Returns a string that contains the entire contents of the image encoded as an image file. The string can be saved to file, or, for example, transferred to a remote computer using FTP.
Może ktoś ma pomysł jak z tego odczytać obrazek?
Ostatnio zmieniony 06 maja 2008 15:06 przez Mikrobi, łącznie zmieniany 1 raz.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
pkruszyk
Posty: 11
Rejestracja: 01 kwie 2008 16:26
Lokalizacja: Wrocław/Bieganin
Kontakt:

Jak przesłać obraz przez sieć Ethernet ?

Post autor: pkruszyk »

Ja jestem początkujący w labview a zwłaszcza w przesyłaniu obrazu przez sieć. Dokładnie od wczoraj mam zainstalowane vision wiec nie mam doświadczenia :D . Jeśli nie sprawi to problemu to prosiłbym o podesłanie przykładowego rozwiązania zapis/odczyt z pliku zdjęcia z opóźnieniem.
Z góry dziękuję za pomoc!!! :D
pkruszyk
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: Jak przesłać obraz przez sieć Ethernet ?

Post autor: rumcajs »

W przykładzie jako String lub Variant przez Shared Variable.
String jako Network, Variant niestety tylko Local.
Rumcajs.
pkruszyk
Posty: 11
Rejestracja: 01 kwie 2008 16:26
Lokalizacja: Wrocław/Bieganin
Kontakt:

Jak przesłać obraz przez sieć Ethernet ?

Post autor: pkruszyk »

Witam!!!
Niestety przykład przysłany przez RUMCAJS (imaq to variant and string) nie chce działać. Wyskakuje Error 74 z komunikatem LabVIEW: Memory or data structure corrupt. Nie moge sobie z tym poradzić.
Zapisuje zdjęcie z kamerki internetowej do pliku co 1s i z tego pliku czytam i przesyłam przez sieć. Serwer działa gdyż zrobiłem sobie podglad zmiennej wysyłanej do sieci i zmienia sie :) Natomiast na Kliencie wyskakuje powyższy błąd. Dodam jeszcze ze obraz przesyłam jako string.
Proszę o pomoc ! :(
Pozdrawiam!!!
pkruszyk
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: Jak przesłać obraz przez sieć Ethernet ?

Post autor: rumcajs »

1. Pokaż nam diagram Clienta, wszak tam pojawia się błąd.
2. Jeżeli nie potrzebujesz zapisywać zdjęcia z kamery USB do pliku to umieść IMAQ to Flatten String po prostu w ciągu dla kamery nie tworząc nowego bufora IMAQ. Jeżeli nie to potrzebna jest sekwencja aby najpierw był zapis do pliku a potem odczyt i wysłanie do shared variable, bo w tej postaci to nie wiadomo co się najpierw wykonuje. O uporządkowaniu diagramu już nie będę nudził wszak to tylko draft jak mniemam.
3. Czy przesłany przykład po usunięciu części kodu związanej z Variant bez dodanej przez Ciebie części kodu do grabowania zdjęć z kamery działa? Sprawdź najpierw to a dopiero później dodawaj swoją część kodu.
Rumcajs.
pkruszyk
Posty: 11
Rejestracja: 01 kwie 2008 16:26
Lokalizacja: Wrocław/Bieganin
Kontakt:

Re: Jak przesłać obraz przez sieć Ethernet ?

Post autor: pkruszyk »

Witam!!!
Ponieważ wcześniej nie dodałem pliku klienta więc dodaje go teraz :D
Nie przesyłam variant gdyż ja korzystam z shared variable i nie moge zdefiniować variant gdyż ma zablokowane właściwości. Jeśli chodzi o przesłany programik to działa zarówno string jak i variant tylko do zdjęcia NI lub innego zapisanego w folderze. Powiem tak nie mam zbytnich wymagań odnośnie szybkości przesyłu obrazu wystarczy raz na sekundę. Ja chce kamerką podglądać stanowisko pomiarowe. Już przesył mi działał tylko jak wcześniej pisałem wyskakuje błąd u klienta : "Memory or data structure corrupt." Bląd ten wychodzi od Unflatten From String.
Proszę o pomoc gdyż mam bardzo mało czasu :( niedługo obrona pracy dyplomowej.
Pozdrawiam!!!
pkruszyk
ODPOWIEDZ