Reading an image sequence: "Error: The filename or url argument must be a string."
조회 수: 32 (최근 30일)
이전 댓글 표시
Hello, I'm trying to work over a sequence of images, I have used dir to obtain a list of all the files:
dirData = dir([dirName, '\*.png']); %# Get the data for the current directory
dirIndex = [dirData.isdir]; %# Find the index for directories
fileList = {dirData(~dirIndex).name}'; %'# Get a list of the files
if ~isempty(fileList)
imgList = cellfun(@(x) fullfile(dirName,x),... %# Prepend path to files
fileList,'UniformOutput',false);
end
imgst=cellstr(imgList);
I tried looping over the list but I got an error so I then tried imread over only one member of the array: imread(imgst(1))
and again I got the error saying argument wasn't a string.
I thought cellstr would convert the members in the list to strings? If they're not strings what are they? how can I reference each file in my list so I can work with them over a loop? I know similar questions have been asked before but I didn't find an answer for an error like mine.
Thanks a lot
댓글 수: 1
Walter Roberson
2020년 7월 8일
The line
imgList = cellfun(@(x) fullfile(dirName,x),... %# Prepend path to files
fileList,'UniformOutput',false);
can be replaced with
imgList = fullfile(dirName, fileList);
fullfile() is happy to take a cell array of character vectors as the second argument.
답변 (3개)
Fer
2015년 10월 4일
댓글 수: 2
Nathaniel Conrad
2020년 7월 8일
Thank you for pointing this out! I was using a cell data container to hold a string character for a file path for the first time and having the same issue, too.
I do find it odd that if a cell only has one element in it, then you must index the container variable with {1} in order to extract the string that is labeling the relevant image file path.
For example, if you store the string in a structure array, then you don't need to index the structure array data container variable at all. Weird!
참고 항목
카테고리
Help Center 및 File Exchange에서 File Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!