Zaciemnianie fragmentu zdjęcia

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
Awatar użytkownika
Brad PID
Posty: 29
Rejestracja: 24 kwie 2013 01:12
Wersja środowiska: LabVIEW 2012

Zaciemnianie fragmentu zdjęcia

Post autor: Brad PID »

Cześć,

Zrobiłem funkcję (załączniki), w której za pomocą Rectangle i warości od 0-1 zmieniam intensywność fragmentu zdjęcia. Problem polega na tym, że za każdym razem potrzebuję tymczasowego zdjęcia aby wykonać operacje. Muszę je za każdym razem tworzyć i usuwać. Pytanie:
a) czy można to zrobić prościej - może są już gotowe metody
b) jeżeli nie a) to jak radzić sobie z referencją do zdjęcia aby za każdym razem nie tworzyć nowej - Mogę utworzyć FGV, która będzie się sama inicjalizować ale jak i kiedy usunąć to zdjęcie z pamięci? Normalnie LV samo dba o zarządzanie pamięcią ale tutaj już to nie działa.

Chciałbym po prostu używać tej funkcji i nie martwić się o tworzenie lub zwalnianie pamięci.
Załączniki
Image Part Intensity.png
Image Part Intensity.vi
(19.11 KiB) Pobrany 454 razy
Image Part Intensity Test.vi
(511.43 KiB) Pobrany 473 razy
Dawid Woźny
Certified LabVIEW Associate Developer
www.optinav.pl
Obrazek
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Zaciemnianie fragmentu zdjęcia

Post autor: smiga »

Nie usuwaj - trzymaj referencję i nadpisuj zdjęcia.
Usuniesz jak już Ci nie będzie potrzebne, czyli może dopiero przy wyjściu z programu.
Podsumowując, pierwszy i ostatni bloczek proponuję wywołać raz, poza tym VI'em.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
Brad PID
Posty: 29
Rejestracja: 24 kwie 2013 01:12
Wersja środowiska: LabVIEW 2012

Re: Zaciemnianie fragmentu zdjęcia

Post autor: Brad PID »

No właśnie chciałbym tego uniknąć - przy takim rozwiązaniu modularność nie istnieje. Za każdym razem kiedy chcę użyć funkcji muszę myśleć o tym aby stworzyć do niej dodatkowe zdjęcie na początku, a później usuwać.

Sprawdziłem czas wykonywania funkcji z usuwaniem referencji i bez- wartości rzędu mikrosekund ( porównując z algorytmami wizyjnymi, nie ma co sobie tym głowy zaprzątać - tworzyć i usuwać). Dodatkowo zdjęcie tworzę z nazwą zawierającą call chain. Dzięki temu nie muszę się martwić, że przez przypadek utworzę zdjęcie o tej samej nazwie i w tej funkcji je usunę.
Dawid Woźny
Certified LabVIEW Associate Developer
www.optinav.pl
Obrazek
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Zaciemnianie fragmentu zdjęcia

Post autor: smiga »

No to nie ma problemu :)
Oczywiście tę referencję możesz sobie tworzyć po wywołaniu tej funkcji, ale raz (np. we wspomnianej przez Ciebie FGV), a później tylko z niej korzystać...i "modularność" dalej będzie zachowana :)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
ODPOWIEDZ