Reference to non-existent field 'BoundingBox'. can you help me? why?
2 views (last 30 days)
Show older comments
a=imread('image201504160001.jpg');
>> figure,imshow(a);
>> title('Original Image');
>> %Convert the Image to binary
>> b=im2bw(a);
>> %Fill the holes
>> c=imfill(b,'hole');
>> %Label the connected components
>> [Label,Total]=bwlabel(c,8);
>> figure,imshow(c);title('Labelled Image');
>> %Rectangle containing the region
>> Sdata=regionprops(Label,'BoundingBox');
>> %crop all the car
>> for i=1:Total
img=imcrop(a,sdata(i).BoundingBox);
Name=strcat('Object Number:',num2str(i));
figure,imshow(Img); title(Name);
end
2 Comments
Guillaume
on 16 Apr 2015
In the above code, the case of the S in sdata changes between the two lines referencing it (one is Sdata, the other is sdata). Is it a genuine error or a copying error? It would generate a different error message though, so I'm not sure why you're getting this error.
Accepted Answer
Image Analyst
on 21 Apr 2015
Please address Guillaume's suggestion that you mistyped the name. Sdata is a different variable than sdata because MATLAB is case sensitive. Capital or lower case "s" - it makes a huge difference!!! You must use the same case letters throughout your program , otherwise it will think you have two different variables: sdata and Sdata. Sdata came out of regionprops() so it will have a BoundingBox field, while sdata was not defined so it certainly won't have ANY fields at all, much less one called BoundingBox.
2 Comments
Image Analyst
on 21 Apr 2015
Your segmentation algorithm is wrong. I don't know what you're doing, but you say it's wrong. Looks like you might be able to find the background color or texture (with stdfilt() or rangefilt()) and then invert it and fill holes, but I don't know.
More Answers (0)
See Also
Categories
Find more on Computer Vision with Simulink in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
