about dynamic variable name for output
Afficher commentaires plus anciens
Hi there, In the code below I want dynamic outputs for 'k' value in the loop. For instance if c=2 I want to get region_number1,region_number2,locs1, locs2 for the output. How can I do this?
for k=1:c
[region_number,locs]=find_region_pixels(first_order_big(:,:,k),orig_image);
end
3 commentaires
While it is possible, creating dynamic variable names will make your code slow and buggy:
Learn to use indexing, which is fast, simple, and reliable:
region_number = NaN(1,c);
locs = NaN(1,c);
for k = 1:c
[region_number(k),locs(k)] = find_region_pixels(first_order_big(:,:,k),orig_image);
end
Change the output size and/or class (e.g. cell array) to suit the outputs of that function.
Huseyin
le 17 Déc 2016
Walter Roberson
le 17 Déc 2016
region_number = NaN(1, c);
locs = cell(1, c);
for k = 1:c
[region_number(k),locs{k}] = find_region_pixels(first_order_big(:,:,k),orig_image);
end
Réponses (2)
1 commentaire
Image Analyst
le 17 Déc 2016
Yes, you can use regionprops, which will measure those things. Then put the results into a cell array:
for k = 1 : numberOfImages
thisLabeledImage = first_order_big(:,:,k);
% Ask for PixelList, which is a list of all (x,y) points that are white/true/1 in the labeled image.
props = regionprops(thisLabeledImage ,orig_image, 'PixelList');
% There may be more than one blob in the image, so props is a structure array.
% For this image, just store this image's blobs' coordinates into a cell array for use later.
blobPixels{k} = props(k);
end
Catégories
En savoir plus sur Image Arithmetic dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!