learnopencv 之 显示图片 @ Jupyter

本系列主要参考github 记录是督促自己学习 运行在 Jupyter 上

github  https://github.com/spmallick/learnopencv.git

原始的 cv.imshow 在Jupyter上不能显示图片 这里采用  matplotlib 曲线绘图

首先创建 pltcvshow.py 文件

import cv2
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

import matplotlib.animation as animation

def cv_show(img, name="plt_cv_show", type="nogray", animate=False): # 利用plt显示图片
    # cv2.imshow(name,img)
    
    plt.figure(figsize=(10,10))
    plt.title(name)
    
    if type == 'gray' :
        img = plt.imshow(img, cmap='gray', animated=animate)
        
        return img
    else :
        img2 = img[:, :, ::-1]
        img = plt.imshow(img2, animated=animate)
        return img

在文件 imread_examples.ipynb 调用处使用 

import cv2
import sys
sys.path.append("..")
import pltcvshow

# Read 8-bit grayscale image
im = cv2.imread("earth-16-bit-per-channel.png", cv2.IMREAD_GRAYSCALE)
print ("flags :  cv2.IMREAD_GRAYSCALE")
print ("Size %s, type %s\n" % (im.shape,im.dtype))
pltcvshow.cv_show(im, "earth-16-bit-per-channel", "gray")

# Read 8-bit color image
im = cv2.imread("earth-16-bit-per-channel.png", cv2.IMREAD_COLOR)
print ("flags : cv2.IMREAD_COLOR")
print ("Size %s, type %s\n" % (im.shape,im.dtype))
pltcvshow.cv_show(im, "earth-16-bit-per-channel")

# Read 16-bit color image
im = cv2.imread("earth-16-bit-per-channel.png", cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH )
print ("flags :  cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH")
print ("Size %s, type %s\n" % (im.shape,im.dtype))
pltcvshow.cv_show(im, "earth-16-bit-per-channel")

# Read transparent PNG / TIFF image
im = cv2.imread("earth-16-bit-per-channel.png", cv2.IMREAD_UNCHANGED)
print ("flags : cv2.IMREAD_UNCHANGED")
print ("Size %s, type %s\n" % (im.shape,im.dtype))
pltcvshow.cv_show(im, "earth-16-bit-per-channel")

目录结构如下图:

learnopencv 之 显示图片 @ Jupyter

learnopencv 之 显示图片 @ Jupyter

 

 

运行结果 各位自己运行了看结果吧 ^-^

上一篇:Living Earth for Mac(地球动态实时天气软件)


下一篇:Virtual Earth如何在Silverlight 2中集成