为啥在 Jupyter 笔记本中调用 cv2.imshow() 时出现无响应窗口
Posted
技术标签:
【中文标题】为啥在 Jupyter 笔记本中调用 cv2.imshow() 时出现无响应窗口【英文标题】: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 上运行完美。
【问题讨论】:
【参考方案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 那是错误的参数顺序以上是关于为啥在 Jupyter 笔记本中调用 cv2.imshow() 时出现无响应窗口的主要内容,如果未能解决你的问题,请参考以下文章
用Jupyter Notebook画图为啥不显示图像直接到笔记本的out中
用Jupyter Notebook画图为啥不显示图像直接到笔记本的out中
为啥当 Jupyter 笔记本处于活动状态时我无法访问我的 localhost:8888 地址?
TypeError:'numpy.ndarray'对象不可调用,无法显示窗口