Index exceeds array bounds error when trying to reach .tif images from file
이전 댓글 표시
I'm working on a program that tracks the movement of particles across many images and as such, it needs to access the file where these images are stored. However, I continue to run into the following issue when trying to access the images:
srcFiles =
0×1 empty struct array with fields:
name
folder
date
bytes
isdir
datenum
Index exceeds array bounds.
Error in Particletracking (line 16)
filename = strcat('/Users/andromache/Desktop/Research/data/other/180319_114103_A1\ 20X\ PL\ FL\
Phase\ \(3\)',srcFiles(i).name);%Change filepath here
This corresponds to the following code:
%% Read File, filter signal, localize and track particles
srcFiles=dir('/Users/andromache/Desktop/Research/data/other/180319_114103_A1\ 20X\ PL\ FL\ Phase\ \(3\)*.tif ') %Change filepath here
pos_list=[];
dt=0.15;
nbimage=180;
for i=1:nbimage
%Analyze picture n°a to b
i;
filename = strcat('/Users/andromache/Desktop/Research/data/other/180319_114103_A1\ 20X\ PL\ FL\ Phase\ \(3\)',srcFiles(i).name);%Change filepath here
a = imread(filename);
a=2^16-a;
%BandPass
b = bpass(a,1,10);
%Findparticles
pk = pkfnd(b,5000,11);
cnt = cntrd(b,pk,15);
%Create list of positions
if find(cnt) ~=0
pos_list=[pos_list; cnt(:,1),cnt(:,2), ones(length(cnt(:,1)),1).*i*dt];
end
end
Solutions attempted include running the code on both mac and windows as well as moving the filepath, and adjusting the filepath ad nauseum. I've inherited this project and code from a growing line who have successively added to the project, so I don't have a full understanding of the code and, given that I can't run it, am haivng a tough time trying to build an understanding of it.
Any suggestions are appreciated.
댓글 수: 2
Bob Thompson
2018년 11월 15일
The error is occurring because srcFiles is empty. I suspect there is an issue with your file path, as you have some folders separated with / and some separated with \.
Brendan Wolan
2018년 11월 16일
채택된 답변
추가 답변 (1개)
Image Analyst
2018년 11월 16일
편집: Image Analyst
2018년 11월 16일
Try making it more robust to discover what the problem is:
folder = 'C:/Users/andromache/Desktop/Research/data/other/180319_114103_A1\ 20X\ PL\ FL\ Phase\ \(3\)'
if ~exist(folder, 'dir')
message = sprintf('Directory does not exist:\n%s', folder)
uiwait(errordlg(message));
return;
end
filePattern = fullfile(folder, '*.tif')
sourceFiles = dir(filePattern)
if isempty(sourceFiles)
message = sprintf('No TIF files exist in folder:\n%s', folder);
uiwait(errordlg(message));
return;
end
for k = 1 : length(sourceFiles)
fullFileName = fullfile(folder, sourceFiles(k).name); % Change filepath here
fprintf('Found TIF file: %s\n', fullFileName);
end
댓글 수: 2
Brendan Wolan
2018년 11월 19일
Image Analyst
2018년 11월 19일
I don't know - I don't use a Mac. Perhaps move the files to a folder that doesn't have so many spaces, parentheses, and slashes. I've added the tag "mac" to your post so maybe some mac people will answer. Or else call tech support.
카테고리
도움말 센터 및 File Exchange에서 Convert Image Type에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!