首页 > 解决方案 > 跨类的不同方法管理 python OpenCV 窗口

问题描述

我尝试为小型 python 应用程序创建的 OpenCV GUI 遇到了一些问题。GUI 旨在显示图像,创建一组切换条来调整将在图像处理算法中使用的一些阈值,并在原始图像旁边显示转换后的图像。

我的想法是通过 python 类管理 GUI,并将不同的阈值/参数存储在类属性中。我有一个方法可以创建我在init方法中调用的窗口,然后是其他几个方法(例如 one_step() 例如)执行一些涉及窗口的操作,例如读取显示图像的切换栏值等...

'''

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()

'''

但是当我创建类的实例并运行涉及窗口的方法时,程序没有打开任何窗口。我怀疑内存空间管理的问题(窗口是在函数内部创建的,并且在函数执行结束时创建)。

如果有人知道发生了什么以及如何解决此问题,我将非常感谢您对这个问题的帮助。

标签: pythonopencvuser-interface

解决方案


推荐阅读