Reading multiple files from a folder and applying regionProps and saving co-ordinates

3 Ansichten (letzte 30 Tage)
Hi,
I want to create bounding boxes around objects in an image and then store the co-ordinates of all the bounding boxes in the images in a table.
For example, if I have 3 images with different amounts of bounding boxes in each image it should be stored as something like this:
image 1- [a1,b1,c1,d1; a2,b2,c2,d2; a3,b3,c3,d3; a4,b4,c4,d4]
image 2 - [a1,b1,c1,d1; a2,b2,c2,d2]
image 3 - [a1,b1,c1,d1; a2,b2,c2,d2; a3,b3,c3,d3 ]
etc.
The problem I am having now is that only the last images bounding box co-ordinates are being stored in the array "prop". I understand that i should have some function to write these co-ordinates to this array but I am unsure of how to do this.
They are also not being stored in the format as shown above.
My code is shown below.
Any assistance would be greatly appreciated.
Thanks!!
Regards,
Kanu
fileFolder = 'D:\Binary1';
dirOutput = dir(fullfile(fileFolder,'Pothole*.jpg'));
fileNames = {dirOutput.name};
for k=1:length(fileNames)
H = fileNames{k};
S = imread(fileNames{k});
bn = imbinarize(S);
imshow(bn)
bn = bwareaopen(bn,100);
imshow(bn);
[L Ne]= bwlabel(bn);
prop =regionprops(L);
hold on
for n = 1:length(prop)
rectangle('Position',prop(n).BoundingBox,'EdgeColor','g','LineWidth',2);
end
hold off
A = struct2cell(prop);
end

Antworten (1)

KALYAN ACHARJYA
KALYAN ACHARJYA am 7 Aug. 2019
Bearbeitet: KALYAN ACHARJYA am 7 Aug. 2019
prop=cell(1,length(fileNames));
for .....
prop{k}=regionprops(L);
....
end
And prop retuen the cell array having the properties of all images one by one
>> prop
prop =
1×n cell array %here n is the length of fileNames
[255×1 struct] [255×1 struct] [255×1 struct] [255×1 struct] [255×1 struct].............
Here you can acess the properties of any images by simple calling prop, Say
For 1st image prop{1}, 2nd image prop{2}...so on
  1 Kommentar
Kanushka Gajjar
Kanushka Gajjar am 7 Aug. 2019
If I do this, i get the following error:
Dot indexing is not supported for variables of this type.
Error in RegPropsTwo (line 33)
rectangle('Position',prop(n).BoundingBox,'EdgeColor','g','LineWidth',2);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Get Started with Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by