<button id="ssm6u"><optgroup id="ssm6u"></optgroup></button>
  • 跳轉至

    Matplotlib顯示彩圖

    概要

    opencv讀入的圖片, 我們如何來顯示它? Python科學計算里面有一個著名的可視化包, 名字叫做Matplotlib . 將圖片的顏色空間進行轉換后,分別用matplotlib顯示RGB圖跟灰度圖。

    keywords Matplotlib 圖片顯示 彩圖

    引入matplotlib的包

    引入pyplot 并起別名為plt

    from matplotlib import pyplot as plt
    

    使用cv2 讀入圖片. 讀入彩圖.

    import cv2
    # 導入一張圖像 模式為彩色圖片
    img = cv2.imread('cat.jpg', cv2.IMREAD_COLOR)
    

    顯示圖片

    plt.imshow(img)
    

    隱藏畫布的坐標系, 并展示圖片.

    # 隱藏坐標系
    plt.axis('off')
    # 展示圖片
    plt.show()
    

    plt錯把BGR當作RGB

    如果你跟著阿凱一步步做, 你肯定可以得到下面這個陰森森的圖片.

    cat_wrong_rgb.png

    因為matploblib的圖片格式, 默認是RGB格式的, 之前阿凱講過opencv 因為歷史原因, 讀入的圖片的格式是BGR的.

    所以, R通道變成了B通道, B通道變成了R通道, 所以才會這樣.
    如果想要正確顯示圖像,就需要使用cvtColor進行顏色空間的轉換,從BGR轉換為RGB。

    Matplotlib顯示圖片-正確演示

    我們來看一下完整版本的程序.
    代碼見

    ImageDisplayByMatplotlib.py

    # -*- coding: utf-8 -*- 
    import numpy as np
    import cv2
    # 引入Python的可視化工具包 matplotlib
    from matplotlib import pyplot as plt
    
    # 導入一張圖像 模式為彩色圖片
    img = cv2.imread('cat.jpg', cv2.IMREAD_COLOR)
    
    # plt.imshow(img)
    # 直接繪制 ndarray 顏色很詭異
    # 原因是opencv讀取到的圖片是BGR格式的,Matplotlib按照RGB格式解析的
    # 所以我們需要將顏色空間轉換
    plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    
    # 隱藏坐標系
    plt.axis('off')
    # 展示圖片
    plt.show()
    

    顯示效果:

    Screenshot_20171211_190042.png


    韩国精品无码一区二区三区,精品无码一区二区三区AV,欧洲丰满美熟女乱又伦AV,亚洲午夜久久久影院伊人