更改标题时图像的打开方式有所不同

CIs*_*ies 4 python opencv image

我有一个正在打开并显示的图像路径列表:

    for path in image_paths:
        print 'Path for the this image is: "{}"'.format(path)
        img = cv2.imread(path)
        cv2.imshow("",img)
        cv2.waitKey(250)
        cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

它会在屏幕中央打开每个图像 250 毫秒,然后按预期移动到下一个图像。当我将第一个参数更改cv2.imshow("",img)cv2.imshow("image {}".format(path[-7:-4]),img)显示标题“image 001”、“image XYZ”等时,图像的打开方式有所不同:

第一个在中心屏幕中打开,第二个在向右和底部打开一点,依此类推,直到达到某种限制并跳到某个不可见框架的左上角。为什么会发生这种情况?

Ben*_*uch 8

cv2.imshow()在窗口中显示图像,并将标识符作为第一个参数传递。如果不存在这样的窗口,则创建该窗口并将其标题设置为标识符。

请注意,窗口标识符和窗口标题通常是不同的!如果你想在同一个窗口中显示多个图像,但标题不同,你可以在imshow. 然后你打电话cv2.setWindowTitle将标题更新为你想要的任何内容。

window_title = "image {}".format(path[-7:-4])
cv2.imshow("unique_window_identifier", img)
cv2.setWindowTitle("unique_window_identifier", window_title)
Run Code Online (Sandbox Code Playgroud)

通过另一个imshow调用,您可以更新图像,通过另一个调用,setWindowTitle您可以更新标题:

cv2.imshow("unique_window_identifier", img2)
cv2.setWindowTitle("unique_window_identifier", window_title2)
Run Code Online (Sandbox Code Playgroud)

请注意,该"unique_window_identifier"字符串永远不会向用户显示,因此您可以在此处使用任何您想要的独特字符串。