[英]How to make cv2.imread() not empty?
我遇到問題的代碼部分如下。
if __name__ == '__main__':
for n, image_file in enumerate(os.scandir(image_folder)):
img = image_file
fig, ax = plt.subplots(1)
# mngr = plt.get_current_fig_manager()
# mngr.window.setGeometry(250, 120, 1280, 1024)
image = cv2.imread(image_file.path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
我收到以下錯誤
image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\module\imgproc\src\color.cpp:181:error:(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我知道 imread() 可能是空的,因為它試圖讀取的圖像沒有正確保存。 我正在嘗試使用另存為 000001、000002、000003 的 3 個圖像來測試此代碼......我對為什么保存在 C:\\imagez 文件夾中的圖像不起作用感到困惑。 我嘗試保存 3 個新圖像,但仍然出現相同的錯誤。 任何建議都會很棒!
如果您閱讀有關cv2.imread()
的文檔,您會發現它可能會失敗 - 在這種情況下,它返回None
(這就是Mat::data==NULL
在 python 中的轉換):
函數 imread 從指定文件加載圖像並返回它。 如果無法讀取圖像(由於文件丟失、權限不當、格式不受支持或無效),則該函數返回一個空矩陣 ( Mat::data==NULL )。
如果您將None
作為輸入提供給cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
- 它會在檢查(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
的參數(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
並找到時(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
它是None
:
使固定:
if __name__ == '__main__':
for n, image_file in enumerate(os.scandir(image_folder)):
fig, ax = plt.subplots(1)
image = cv2.imread(image_file.path)
if image:
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
else:
print("Unable to load image at path {}".format(image_file))
檢查給您帶來這些問題的路徑的 _exact_spelling - 這可能只是您的路徑/文件名中的拼寫錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.