# I am trying to find the exact distance of a curvy line.

조회 수: 3(최근 30일)
Sidney Todd 2021년 7월 21일
댓글: Walter Roberson 2021년 7월 22일
I am needing to find the distance of the line outlined in red. I was thinking i could filter the photo and find the line distance by pixel count but havent been able to succeed this way. Anything advice is much appreciated.
The original photo and the edited version are both attached.
The blue line drawn on the original photo is the same as the red boundary on the edited version. It is just for reference.
my code is below-
clear
clc
close all
% imshow(I)
hold on
% J=imcrop(I)
J=rgb2gray(I);
BW1=edge(J,'sobel',.009,'horizontal');
%Auto crop image using set points----------------------------------------
I2 = imcrop(mask,[407.51 0.51 83.98 1037.98]);
imshow(I2,'InitialMagnification', 'fit')
%boundary outline and trace -----------------------------------------
[B,L] = bwboundaries(I2,'noholes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 0.5)
end
##### 댓글 수: 4표시숨기기 이전 댓글 수: 3
Image Analyst 2021년 7월 22일
All we can see are the version with the red or blue annotation lines or regions already drawn into the image. We don't see either image with no red or blue lines draw in/over it.

댓글을 달려면 로그인하십시오.

### 채택된 답변

Matt J 2021년 7월 21일
편집: Matt J 2021년 7월 21일
Why not as follows?
blue=bwareafilt( I2(:,:,1)<=50 & I2(:,:,2)<=50 & I2(:,:,3)>=200, 1);
Length=getfield( regionprops(blue,'Perimeter') ,'Perimeter')
Length = 1.6471e+03
##### 댓글 수: 1표시숨기기 없음
Sidney Todd 2021년 7월 22일
what units would this by default be in?

댓글을 달려면 로그인하십시오.

### 추가 답변(2개)

J. Alex Lee 2021년 7월 21일
Assuming that the boundary points are ordered well (adjacently), then you can calculate the cummulative square distance between adjacent points to get the approximate arclength along the curve
x = boundary(:,1);
y = boundary(:,2);
dx = diff(x);
dy = diff(y);
d = sqrt(dx.^2+dy.^2);
L = sum(d)
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

댓글을 달려면 로그인하십시오.

Walter Roberson 2021년 7월 21일
The exact distance along a curved line is very likely to be an irrational number.
You have approximations of curves. What distance you measure depends upon the approximation model you use. The more accurately you approximate, the more the answer can change.
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Walter Roberson 2021년 7월 22일

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!

Translated by