【问题标题】:Why did I get No Responding window when calling cv2.imshow() in Jupyter notebook为什么在 Jupyter 笔记本中调用 cv2.imshow() 时出现无响应窗口
【发布时间】:2021-10-11 19:25:58
【问题描述】:

每当我在 Jupyter notebook 中运行以下代码时,都会弹出一个窗口并变为无响应。我所做的是将图像转换为 HSV 颜色空间。

import cv2

im = cv2.imread("lena.png", 1)
#cv2.imshow("1", im)
#cv2.waitKey()

im_HSV=[]
im_HSV = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
cv2.imshow("HSV", im_HSV)

但是,代码在 spyder 上运行完美。

【问题讨论】:

    标签: python opencv jupyter-notebook spyder


    【解决方案1】:

    你有两种方法可以解决这个问题,

    A) 使用 matplotlib:

    %matplotlib inline
    #The line above is necesary to show Matplotlib's plots inside a Jupyter Notebook
    
    import cv2
    from matplotlib import pyplot as plt
    
    #Import image
    image = cv2.imread("input_path")
    
    #Convert to HSV
    im_HSV = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
    
    #Show the image with matplotlib
    plt.imshow(im_HSV)
    plt.show()
    

    另一种方法是
    B) 使用opencv的waitkey函数

    
    import cv2
    
    #Import image
    image = cv2.imread("input_path")
    
    #Convert to HSV
    im_HSV = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
    
    cv2.imshow(im_HSV,"HSV")
    cv2.waitKey(0) 
    cv2.destroyWindows()
    

    【讨论】:

    • 第二个例子什么也不显示。它缺少imshow
    • 是的,你是对的,会更新它,谢谢!
    • aaand 那是错误的参数顺序
    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 2016-04-11
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2021-09-18
    相关资源
    最近更新 更多