opencv cv2.imshow自动为小图片

时间:2015-12-03 14:06:19

标签: python opencv imshow

我尝试使用cv2.imshow()来显示图像,但是我发现结果会自动填充空白。我使用的代码如下:

import cv2
if __name__ == '__main__':   
    img = cv2.imread('test2.png')
    cv2.imshow('dafasf', img)
    key = cv2.waitKey(0)
    if key == 27: # ESC
    cv2.destroyAllWindows()

the image I used enter image description here

1 个答案:

答案 0 :(得分:3)

默认情况下imshow创建具有WINDOW_AUTOSIZE属性的窗口对象。这意味着窗口大小由一些前端(GUI)决定, OpenCV 是用它编译的。

您的图片实际上并未更改,只是显示问题。

如果您想手动控制窗口属性,可以在namedWindow调用之前尝试使用您的属性创建imshow,i。即像这样的东西:

cv2.namedWindow("window name", cv2.WINDOW_NORMAL)
cv2.imshow("window name", img)

根据documentation,窗口显示有3个属性(WINDOW_NORMALWINDOW_AUTOSIZEWINDOW_OPENGL),但使用以下简单代码段,您可以确定实际支持的值(在我的版本中,我看到WINDOW_FREERATIOWINDOW_FULLSCREENWINDOW_AUTOSIZEWINDOW_NORMALWINDOW_KEEPRATIOWINDOW_OPENGL):

[i for i in list(cv2.__dict__.keys()) if i[:6] == 'WINDOW']