How to detect the edge in following image?

조회 수: 4 (최근 30일)
Glypton
Glypton 2022년 6월 27일
댓글: Image Analyst 2022년 7월 4일
How would I detect the edge drew in the picture below ? First I tried to remove noises using the median filter on the image. Then I averaged the values from row 220 to 225 to remove the artifact in the middle of the image. Then, I tried to use the edge function but it does not work. I am just not able to detect the edge I drew in the attached image. How would one do this? Also attached to this post is the first and second half of the image shown in the picture. I would appreciate any help!
What I have tried so far:
load("image.mat", "image");
for r = 220:225
for c = 1:14824
image(r,c) = (image(219,c) + image(226,c))/2;
end
end
filteredImage = medfilt2(image(:, 1:14824), [6,6]);
imagesc(filteredImage);
colormap("gray");
BW = edge(filteredImage, "sobel",[]);
BW = bwareaopen(BW, 20, 4);
regionOfInterest = BW(200:350, :);
[rows, columns] = find(regionOfInterest);
[C, ia] = unique(columns);
rows = rows(ia) + 200;
e = fit(C,rows, "linearinterp");
hold on;
plot(e, C, rows);
and the result
  댓글 수: 9
Glypton
Glypton 2022년 7월 4일
@Image Analyst could you tell my why you used 3 and 7 for sigma here
edgeImage = imgaussfilt(grayImage, 3) - imgaussfilt(grayImage, 7);
How did you get these values?
Image Analyst
Image Analyst 2022년 7월 4일
Trial and error. Or you could put into a nested for loop to try all combinations and see which works best.

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

답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by