Приложение Kivy аварийно завершает работу после обработки нескольких изображений с помощью OpenCVAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Приложение Kivy аварийно завершает работу после обработки нескольких изображений с помощью OpenCV

Сообщение Anonymous »

Я разрабатываю приложение для Android с использованием Kivy и Python, которое включает обработку изображений, выбранных пользователем через виджет Chooser из библиотеки androidstorage4kivy. Основная функциональность моего приложения связана с расчетом площадей объекта с помощью OpenCV, и по этой причине я пытаюсь позволить пользователю калибровать камеру с помощью эталонной платы.
Калибровка работает. следующим образом:
  • Пользователь выбирает список изображений с помощью виджета Chooser.
  • Обратный вызов функция запускается при выборе, которая принимает список путей к файлам в качестве аргумента.
  • Для каждого пути используется cv2.imread() для загрузки изображения, за которым следует cv2 .aruco.detectMarkers() для обнаружения маркеров внутри изображения и cv2.aruco.interpolateCornersCharuco() для получения углов калибровочной доски.
  • После получения маркеры со всех изображений, приложение вызывает cv2.aruco.activateCameraCharuco(), чтобы получить калибровочную матрицу.
Однако я Я столкнулся с проблемой при попытке обработать более 10 изображений одновременно. Приложение вылетает, но как ни странно, это происходит после того, как функция обратного вызова уже завершила свое выполнение и калибровочная матрица успешно возвращена.
Учитывая такое поведение, я подозреваю, что здесь может быть управление памятью проблема или ограничение, связанное с количеством изображений, обрабатываемых одновременно. Есть ли способ определить причину сбоя (в идеале изнутри VScode)? Все остальные ошибки вылезли в консоль, а в этом случае приложение вылетает молча.
Думаю, проблема не в том, что я загружаю все изображения сразу в память, так как я загружайте их в цикле следующим образом, чтобы в памяти была максимум одна копия:
for image_path in image_list:
image = cv2.imread(image_path)
do.stuff()
del image


Подробнее здесь: https://stackoverflow.com/questions/786 ... ith-opencv
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»