Photogrammetry, distance in image

5 次查看(过去 30 天)
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 个评论
Image Analyst
Image Analyst 2017-9-22
Interpolate what variable between what starting value and and what ending value?
Joachim Huet
Joachim Huet 2017-9-25
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
编辑:Ramnarayan Krishnamurthy 2017-9-22
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!

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Camera Calibration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by