在jupyter中使用imshow显示opencv图像

jupyter中用cv2.imshow打开窗口进行显示后不能点击关闭按钮,否则消息处理机制会导致python挂掉。那么只有用matplotlib来画了,由于numpy和opencv的rgb通道排列是反的,所以做一个转化就可以了,粘贴下面代码里的函数,直接调用就好。

def imshow(im):
    im = cv.cvtColor(im, cv.COLOR_BGR2RGB)
    h,w = im.shape[:2]
    print(im.shape)
    plt.imshow(im,cmap='gray')
    plt.show()

如果你还是想用opencv自己的imshow单独开个窗口显示,那么贴下面这部分代码就好,但是注意不要点击右上角的关闭按钮,否则会挂掉,直接按键盘任意一个键就可以了

image = cv2.imread('example/image.png')
cv2.imshow("test", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

比较容易,记录一下。

发表评论