parte superior de la ventana opencv imshow

pregunta:

Mi entorno de desarrollo es Linux y uso opencv-python para desarrollar el procesamiento visual. Como mi dispositivo no tiene teclado, no puedo cerrar la ventana presionando un botón, así que debo hacer clic en la "x" en la esquina superior derecha. de la ventana para cerrar la ventana emergente de imshow. Pero la "x" es muy pequeña, a veces hace clic accidentalmente en un lugar que no sea la ventana emergente, la ventana emergente de imshow se ocultará detrás y la interfaz actual no se puede operar, lo que hace que todo el dispositivo se vea "atascado" y no puede funcionar.

Solución:

El uso de la función opencv puede colocar la ventana imshow en la parte superior, de modo que la ventana no se oculte si se toca por error. el código se muestra a continuación:

# 一般显示代码如下:cv.waitKey()仅能接收按键的信号,仅能通过按键关闭窗口
		# 假设前面已经import cv2 as cv
		src = cv.imread("1.bmp", 1)
        cv.namedWindow("image", 0)
        cv.resizeWindow("image", 640, 480)
        cv.imshow("image", src)
        cv.waitKey()


# 第一次优化:通过while循环,判断是否有按键信号,和判断窗口是否被关闭,
# 此时imshow出来的窗口可以用按键信号关闭,也可以使用鼠标点击右上角的“x”关闭
# 但是此时会出现点击窗口外的区域会使窗口隐藏在后面无法点击关闭的问题
		# 假设前面已经import cv2 as cv
		src = cv.imread("1.bmp", 1)
		cv.namedWindow("image", 0)
        cv.resizeWindow("image", 640, 480)
        cv.imshow("image", src)
        while True:
            if cv.waitKey(100) != -1:		# 等待100ms看是否有按键信号输入,有则结束while循环
                break
            if cv.getWindowProperty('image', cv.WND_PROP_VISIBLE) < 1: 		# 判断“image”窗口是否还存在,如果点击右上角的“x”关闭了,则结束while循环
                break


# 第二次优化:使用cv.setWindowProperty()函数使窗口置顶
# 至此,窗口既可以使用按键关闭,也可以使用鼠标点击关闭,也不会出现窗口隐藏到后面的问题
		# 假设前面已经import cv2 as cv
		src = cv.imread("1.bmp", 1)
		cv.namedWindow("image", 0)
		cv.setWindowProperty("image", cv.WND_PROP_TOPMOST, 1) 	# 设置窗口置顶
        cv.resizeWindow("image", 640, 480)
        cv.imshow("image", src)
        while True:
            if cv.waitKey(100) != -1:
                break
            if cv.getWindowProperty('image', cv.WND_PROP_VISIBLE) < 1: 	
            	break

おすすめ

転載: blog.csdn.net/weixin_44650358/article/details/131109081