Управление окном python OpenCV через различные методы класса - PullRequest
0 голосов
/ 08 апреля 2020

У меня возникли проблемы с OpenCV GUI Я пытаюсь создать для небольшого python приложения. GUI предназначен для отображения изображения, для создания набора переключателей для настройки некоторых пороговых значений, которые будут использоваться в алгоритме обработки изображений, и для отображения преобразованного изображения рядом с исходным изображением.

Моя идея состоит в том, чтобы управлять GUI через python класс и хранить различные пороговые значения / параметры в атрибутах класса. У меня есть метод, который создает окно, которое я вызываю в методе init , а затем несколько других методов (например, one_step ()), выполняющих некоторые операции с окном, такие как чтение значений переключателя, отображающих image, et c ...

'' '

def __init__(self, path_to_images):

    self._min_canny = 100
    self._max_canny = 200

    self._blur_kernel_size = 5
    self._blur_sigma_value = 0

    self._closing_iterations = 1

    self._path_to_images = path_to_images

    os.chdir(path_to_images)

    self._count = 1

    self._current_image = cv2.imread(str(self._count) + '.jpg' , 1)

    self.initialize_window()



def initialize_window(self):      

    cv2.namedWindow('Original')

    cv2.createTrackbar('Blur Kernel Size', 'Original', self.blur_kernel_size, 10, GUI_seg.on_change)
    cv2.createTrackbar('Blur Sigma Value', 'Original', self.blur_sigma_value, 5, GUI_seg.on_change)
    cv2.createTrackbar('Min Canny', 'Original', self.min_canny, 255, GUI_seg.on_change)
    cv2.createTrackbar('Max Canny', 'Original', self.min_canny, 255, GUI_seg.on_change)
    cv2.createTrackbar('Closing Iterations', 'Original', self.closing_iterations, 20, GUI_seg.on_change)

    self.one_step()

' ''

Но когда я создаю экземпляр класса и запускаю методы, включающие окно, окно не открывается программой. Я подозреваю проблему управления пространством памяти (окно создается внутри функции и в конце выполнения функции).

Если у кого-то есть представление о том, что происходит и как это исправить, Я был бы очень признателен за помощь в этом вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...