【OpenCV】問題解決: AttributeError: 'JpegImageFile' object has no attribute 'shape'

前言

這篇是我在實作 OpenCV 時,碰到以下錯誤訊息的解決辦法:

AttributeError: 'JpegImageFile' object has no attribute 'shape'

解決辦法

個人產生此問題的原因是因為在使用「圖片處理 package 的時候」,
將「pillow (import PIL)」與「OpenCV (import cv2)」混用了,

個人導致此錯誤的原因是因為使用用了 PIL 的方式讀檔

pillow, opencv 混用 (錯誤)

img = Image.open(path)
print(img.shape) #error !!!

讀進來的會是 PIL 的格式,不支援 OpenCV 的 shape 參數,
所以請修改成一致,

改為只用 opencv

這邊使用 OpenCV 來示範:

img = cv2.imread(path)
print(img.shape) #error !!!

Reference