【发布时间】:2022-11-21 09:40:35
【问题描述】:
我遇到了一个奇怪的问题,希望有人向我解释一下,这样我以后就可以避免了。当我放置多个轨迹条(在我的例子中是 6 个)时,最后一个轨迹条要短得多。这是基本代码:
import cv2
def nothing(arguments):
pass
cv2.namedWindow('TrackBars')
cv2.resizeWindow('TrackBars', 500, 300)
cv2.createTrackbar('Slider 1', 'TrackBars', 0, 255, nothing)
cv2.createTrackbar('Slider 2', 'TrackBars', 0, 255, nothing)
cv2.createTrackbar('Slider 3', 'TrackBars', 0, 255, nothing)
cv2.createTrackbar('Slider 4', 'TrackBars', 0, 255, nothing)
cv2.createTrackbar('Slider 5', 'TrackBars', 0, 255, nothing)
cv2.createTrackbar('Slider 6', 'TrackBars', 0, 255, nothing)
cv2.waitKey(0)
我注意到将窗口变大可以解决问题:
cv2.resizeWindow('TrackBars', 500, 320)
尽管下面有很多空间,但我认为可能是窗口裁剪了轨迹栏,使其表现得很奇怪。但是,在准备要在此处发布的代码时,我发现即使有 2 或 3 个轨迹栏被窗口裁剪,也能正常工作。只有当有 4 个或更多时才会出现此行为。
import cv2
def nothing(arguments):
pass
cv2.namedWindow('TrackBars')
cv2.resizeWindow('TrackBars', 500, 60)
cv2.createTrackbar('Slider 1', 'TrackBars', 0, 255, nothing)
cv2.createTrackbar('Slider 2', 'TrackBars', 0, 255, nothing)
cv2.waitKey(0)
这里发生了什么?为什么其中一个 trackbar 更短,但只有当有很多 trackbar 时才更短?
附加信息:
- 打开简历:4.6.0.66
- 操作系统: 视窗 10
- HighGUI后台: WinAPI
【问题讨论】:
-
你能分享你的opencv版本吗?
-
opencv-python 4.6.0.66
-
什么操作系统和什么 HighGUI 后端? |我可以在 Windows 上重现该问题,多个版本的 OpenCV 至少可以追溯到 3.3。
-
我正在使用 Win10。我什至不知道 HighGUI 是什么,所以无论默认值是什么,都可能是这样。
-
谢谢。 JFYI HIghGUI(高级 GUI 的缩写)是实现您在此处使用的功能的 OpenCV module 的名称。默认情况下,Windows 构建使用 WinAPI,所以这就是你的情况。 |请edit你的问题并在那里添加这些细节。