首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MATLAB imread 函數報錯:文件擴展名多寫點號導致讀取失敗

     編輯:程式設計綜合問答

錯誤現象

imread('image.bmp') 正常,但 imread('image..bmp') 或路徑中包含雙點號會報錯「文件格式無法識別」。

原因

MATLAB 根據擴展名判斷解碼器,..bmp 不被識別為有效 BMP 擴展名。

解決

  1. 檢查字符串變量是否誤拼接雙點號:fullfile(path, ['image' '.' ext]) 中 ext 若已含點號會導致雙點。
  2. 統一使用 fullfile 構建路徑,避免手動拼接。
  3. 若不確定擴展名,可用 imread(fullpath) 直接讀取,MATLAB 會自動檢測文件頭。

最佳實踐

filename = 'image.bmp';          % 單點號
img = imread(fullfile(folder, filename));
% 或
[~, name, ext] = fileparts(fullpath); % ext 包含點號
img = imread(fullpath);             % 直接讀取,無需擴展名
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved