本系列运行在 Jupyter 上 主要参考github 记录是督促自己学习
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")
目录结构如下图:
运行结果 各位自己运行了看结果吧 ^-^