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.
Zaciemnianie fragmentu zdjęcia
Zaciemnianie fragmentu zdjęcia
- Załączniki
-
- Image Part Intensity.vi
- (19.11 KiB) Pobrany 509 razy
-
- Image Part Intensity Test.vi
- (511.43 KiB) Pobrany 519 razy
- smiga
- Administrator
- Posty: 823
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Zaciemnianie fragmentu zdjęcia
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.
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.
Re: Zaciemnianie fragmentu zdjęcia
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ę.
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ę.
- smiga
- Administrator
- Posty: 823
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Zaciemnianie fragmentu zdjęcia
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

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
