cv2.imshow() crashes Kernel

用pyplot.imshow取代cv2.imshow

我在运行cv2.imshow和destroyAllWindows时,Jupyter notebook出现如下告警,然后Visual studio code崩溃,必须重启才能正常。

Error: Direct kernel connection broken

githhub上分析这不是notebook问题,应该与ipython或ipykernel有关。

后来采用matplotlib的pyplot函数,效果更好

%matplotlib inline
from matplotlib import pyplot as plt
img1 = cv2.imread("ls.jpg")
plt.imshow(img1)
plt.show()

Screen Shot 2021-02-27 at 6.31.42 PM

cv2是BGR与pyplot是RGB

为什么上图人脸发蓝,因为图片是用cv2读取的,颜色顺序是BGR,而pyplot是RGB,因此需要做一个转换。

plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))
#plt.imshow(img1)
plt.show()

Screen Shot 2021-02-27 at 10.26.00 PM
Screen Shot 2021-02-27 at 10.25.46 PM

参考
stackoverflow
github
BGR2RGB