How to find mean line of the this edge?

2 ビュー (過去 30 日間)
vikash kumar
vikash kumar 2019 年 8 月 13 日
コメント済み: Image Analyst 2019 年 8 月 17 日
Hi,
I'm working on image processing so i need help here i uploaded my image here.What i need is to find the middle line which will the skeleton of the edge.Please help me.
Thanks.
edge_img.jpg
  1 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 8 月 14 日
mean line means?

サインインしてコメントする。

回答 (2 件)

Matt J
Matt J 2019 年 8 月 14 日
Try bwskel

Image Analyst
Image Analyst 2019 年 8 月 14 日
Call bwareafilt() to get the largest blob:
mask = bwareafilt(mask, 1);
Then scan across column by column to get the midline
[rows, columns] = size(mask);
topLines = zeros(1, columns);
bottomLines = zeros(1, columns);
for col = 1 : columns
y = find(mask(:, col), 1, 'first');
if ~isempty(y)
topLines(col) = y
bottomLines(col) = find(mask(:, col), 1, 'last')
end
end
% Get midline
midLine = (topLines + bottomLines) / 2;
% Fit a line through it, if you want
goodColumns = topLines ~= 0;
x = 1:columns;
coefficients = polyfit(x(goodColumns), midLine(goodColumns), 1)
yFitted = polyval(coefficients, x);
hold on;
plot(x, yFitted, 'r-', 'LineWidth', 2);
  6 件のコメント
Image Analyst
Image Analyst 2019 年 8 月 16 日
Darn, I was gettong all ready to help you now that I have more time, and you forgot to attach the images. Please attach the original PNG, tiff, bmp or JPG images. I can't call imread() on hte fig files.
Image Analyst
Image Analyst 2019 年 8 月 17 日
Oh, OK, so you don't really want to or need to do edge detection at all. All you need to do is to find the black lines, which you can do by color segmentation. So try that. Or better yet, just get the original digital signals if you can rather than trying to figure them out from a cell phone image of a strip chart.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by