Обновление изображения октавы терпит неудачу после изменения размера окна выхода

Я использую октаву для обработки некоторых видео и обеспечения его вывода на различных этапах обработки. Я загружаю видео кадр за кадром и использую set(self.image_object, 'CData', self.data);для обновления изображения.

После того, как я изменяю размер окна вывода, установить функцию не удается set: invalid handle (= -1.39375).

%fist frame display
self.image_object = imshow(self.data);

...

%new frame arrives and I try to set display it's content in already created image output
set(self.image_object, 'CData', self.data);

Похоже, что после изменения размера окна вывода my image_objectстановится недействительным.

Любые идеи ценятся.

1 ответ

  1. Ну, я не знаю, стоит ли этот ответ оставлять здесь, но причиной аварии стал субплановый отдых. Так что в preudocode моя программа была довольно похожа на следующую:

    loop
        imageA = get_updated_image_A();
        imageB = get_updated_image_B();
    
        create_subplot();
        display_image(imageA);
    
        create_subplot();
        display_image(imageB);
    end loop
    

    Таким образом, в octave это вызывало сбой выполнения после изменения размера окна вывода. После того, как я изменил свой код следующим образом, все начало работать так, как было задумано:

    loop
        imageA = get_updated_image_A();
        imageB = get_updated_image_B();
    
        if(is_first_iteration)
            create_subplot();
        endif
        display_image(imageA);
    
        if(is_first_iteration)
            create_subplot();
        endif
        display_image(imageB);
    end loop