I have a iterate undistorttImage function question for version 2016a
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论

I also posted the question here if you prefer : http://stackoverflow.com/questions/38907782/iterate-function-for-matlab-r2016a
回答(1 个)
Image Analyst
2016-8-12
Then don't pass in the image, pass in the index and the cell array
function output = undistortImage(filenames, i)
try
output = []; % Initialize
filename = filenames{i};
originalImage = imread(filename);
% More code....
DO NOT have the output variable change it's name with the loop index - bad bad idea. See http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F
Put the output image into a cell array if you really, really need to keep it after your loop exits.
allImages{k} = undistortImage(filenames, k); % Save image into a cell array and use up a huge amount of memory.
Normally one would just call it thisImage and consume it during the same iteration and overwrite it on every iteration
thisImage = undistortImage(filenames, k); % thisImage will get replaced every iteration and is more memory efficient.
By the way, don't use i and j as loop iterators because they stand for the imaginary variable. That's why I suggest using k instead.
0 个评论
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!