十二、Matplotlib的 imshow使用方法

目錄

1、畫灰度圖像

2、畫彩色圖像


1、畫灰度圖像

# encoding: utf-8
import cv2
import matplotlib.pyplot as plt
import numpy as np

def show_img(name="test",img=None):
    plt.figure()
    plt.imshow(img)
    plt.title(name)
    plt.show()


if __name__ == '__main__':
    path = r"lena.jpg"
    img = cv2.imread(path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ret,binary = cv2.threshold(gray,127,255,0)
    """測試使用不同的cmap,畫彩色和灰度圖像"""
    # 使用cmap,默認值顯示彩色圖像,不正確
    plt.subplot(2,2,1),plt.imshow(img),plt.axis('off')#關閉座標軸
    # 使用cmap='gray'顯示彩色圖像,不正確
    plt.subplot(2,2,2),plt.imshow(img,cmap='gray'),plt.axis('off')#關閉座標軸
    # 使用cmap,默認值顯示灰度圖像,不正確
    plt.subplot(2,2,3),plt.imshow(gray),plt.axis('off')#關閉座標軸
    # 使用cmap='gray',默認值顯示彩色圖像,正確
    plt.subplot(2,2,4),plt.imshow(gray,'gray'),plt.axis('off')#關閉座標軸
    plt.show()

2、畫彩色圖像

注意通道的順序

# encoding: utf-8
import cv2
import matplotlib.pyplot as plt
import numpy as np

def show_img(name="test",img=None):
    plt.figure()
    channel = img.shape
    if channel == 3:
        b, g, r = cv2.split(img)
        img = cv2.merge([r, g, b])
    plt.imshow(img)
    plt.title(name)
    plt.show()


if __name__ == '__main__':
    path = r"lena.jpg"
    img = cv2.imread(path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ret,binary = cv2.threshold(gray,127,255,0)
    b,g,r = cv2.split(img)
    img2 = cv2.merge([r,g,b])

    # 使用cmap,默認值顯示彩色圖像,不正確
    plt.subplot(1,2,1),plt.imshow(img),plt.axis('off')#關閉座標軸
    # 使用cmap='gray'顯示彩色圖像,不正確
    plt.subplot(1,2,2),plt.imshow(img2),plt.axis('off')#關閉座標軸
    plt.show()

 

發佈了167 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章