Pracuję nad aplikacją do przetwarzania obrazu dla systemu Android, która rozpoznaje notację muzyczną ze zdjęć wykonanych na arkuszach muzycznych.Czy możliwe jest pocięcie mapy bitowej na małe kawałki bez załadowania całej rzeczy do pamięci?
Próbowałem załadować cały obraz do bitmapy przy użyciu metody BitmapFactory.decodeFile(imgPath), ale ponieważ mój telefon nie ma wystarczającej ilości pamięci, otrzymuję komunikat o "wielkości sterty maszyny wirtualnej". Aby obejść to, chciałbym posiekać cały obraz na mniejsze kawałki, ale nie jestem pewien, jak to zrobić.
Widziałem też, że to możliwe, aby zmniejszyć rozmiar pamięci bitmapy za pomocą inSampleSize property klasy BitmapFactory.Option, ale jeśli to zrobię, że nie dostanie wysokiej rozdzielczości obrazu potrzebne do notacji muzycznej proces rozpoznawania.
Czy mimo to można to zrobić bez przechodzenia do NDK?
naprawdę jest to plik zakodowany w postaci bitmapy? Czy możesz skompresować obraz źródłowy, aby nie był tak duży? Dla samej muzyki nie powinno być wielu kolorów ... Jak duże są bajty i rozdzielczość, z którymi pracujesz? – Matt
Czy mapa bitowa jest twoja czy użytkownika? Jeśli tak, rozważ przechowywanie wstępnie rozdrobnionego i/lub w mniejszej ilości kolorów. Jeśli to użytkownik, czy jest to przypadek graniczny, czy typowy sygnał wejściowy? Jeśli jest to granica, zastosuj sprawdzanie poprawności/pełną obsługę błędów. Jeśli typowe, rozważ ponownie swój wybór platformy. –
Bitmapa pochodzi od użytkownika. Wykona zdjęcie z kamery mobilnej. Muszę wykorzystać jak największą bitmapę, ponieważ w procesie rozpoznawania skuteczność wynika z tego. Dziękuję za edycję i przepraszam za mój słaby angielski. – OffCS