# Photogrammetry, distance in image

10 views (last 30 days)
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 CommentsShowHide 1 older comment
Joachim Huet on 25 Sep 2017
The big rectangle is the A4 sheet of paper and I would like to measure the size of the object on top of it.
I could do it manually by measuring the length of both the object and the A4 sheet and then doing a linear interpolation knowing the real length of the A4 sheet. But is there a way in matlab to do that automatically ? (Sorry if it is not clear enough)

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:
% 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!
Joachim Huet on 26 Sep 2017

### Categories

Find more on Camera Calibration 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!

Translated by