天天看點

圖像處理——在Python中使用OpenCV和PIL顯示圖像1 前言2 南溪筆記3 使用PIL顯示圖像

1 前言

今天在做Detectron2的測試的時候,差點又被OpenCV給弄糊塗了;

首先,一個需要明确的是:Opencv的顔色通道順序為[B,G,R],PIL的顔色通道順序為[R,G,B];

是以想着寫筆記來記錄一下~

2 南溪筆記

首先,我們可以确定的是,

夏侯南溪在模型代碼中使用plt來顯示圖檔;(記得要加上等待按鍵繼續)

主要是OpenCV的視窗化顯示比較麻煩,容易出現各種各樣的問題:

問題1:如果不加上cv2.waitKey(0),視窗一閃就沒用了,是以必須加上等待按鍵;

問題2:在Notebook中也有顯示的問題,如果沒有處理好,就會導緻Notebook的Kernel崩潰,也挺麻煩的;

最主要的原因是:torchvision包對PIL圖像格式的支援比較好,

是以我們最終選擇PIL庫來顯示圖像;

還有一個需要再次強調的是:

Opencv的顔色通道順序為[B,G,R],

PIL的顔色通道順序為[R,G,B];

這個雖然是這樣說,但是總感覺好像不是很清楚,

是以我想通過一個測試來顯式的對兩種圖像庫的顯示功能做一下測試,

我們的測試使用Notebook來進行,

3 使用PIL顯示圖像

使用PIL顯示圖像的示例代碼如下:

from PIL import Image


def main():
    # Image path
    im_path = "image.jpg"
    img = Image.open(im_path)
    img.show()
    return 0


if __name__ == '__main__':
    main()
           

繼續閱讀