Photogrammetry, distance in image
5 views (last 30 days)
Show older comments
Joachim Huet
on 19 Sep 2017
Commented: Joachim Huet
on 26 Sep 2017
I have the following image and I want to measure the size of the object on the A4 sheet of paper (Known dimensions 297*210).
I started by grayscaling the image and then applied a Sobel filter in order to get the edges.
How can I interpolate the size then ? (Automatically)
Thanks
2 Comments
Image Analyst
on 22 Sep 2017
Interpolate what variable between what starting value and and what ending value?
Accepted Answer
Ramnarayan Krishnamurthy
on 22 Sep 2017
Edited: Ramnarayan Krishnamurthy
on 22 Sep 2017
A possible approach would be to use the function 'regionprops' after some basic pre-processing:
I = imread('edges.png');
% Reduce the number of individual regions
I1 = double(ones(size(I))-(I));
% Label the connected components
I2 = bwlabel(I1,4);
% Find the label of the region of interest using the data cursor
imagesc(I2)
% Use regionprops to automatically evaluate the image properties (FilledArea as an example)
R = regionprops(I2,'Area');
% The component of interest is labeled 12 and the output is the number of pixels of the region
R(12).Area
% Identify the ROI visually
R_I = regionprops(I2,'Image');
% Plot the Region of Interest
imshow(R_I(12).Image);
There are additional features such as Perimeter, Filled Area, etc which may be of interest to you. The complete list of properties is available at:
Hope this helps!
More Answers (0)
See Also
Categories
Find more on Camera Calibration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!