How to mark specific points in a boundary?
2 views (last 30 days)
Show older comments
I used this code to mark boundary of my image.Now I want to detect specific points such as most concave point in a specific region of the boundary and most convex point.I have given the image that i detect the boundary and i manually detect the points using blue arrows that i want to mark automatically.Can you please suggest a method for this?
I = imread('055.bmp');
figure()
imshow(I);colormap gray
title('Original Image','fontsize',14);
img2 = imnoise(I,'salt & pepper',0.025);
I1 = img2;
for c = 1 : 3
I1(:, :, c) = medfilt2(img2(:, :, c), [5, 5]);%add median filter
end
x =rgb2gray(I1);
I2 = x < 60;
%I2 = im2bw(I1);
figure()
imshow(I2);colormap gray
title('Median Filtererd','fontsize',14)
dim = size(I2);
col = round(dim(2)/2)-90;
row = find(I2(:,col), 1 );
boundary = bwtraceboundary(I2,[row, col],'N');
%----Display original grayscale image and use coordinates returned by bwtraceboundary to plot the border on the image.
imshow(I);
hold on;
plot(boundary(:,2),boundary(:,1),'r','LineWidth',1);
BW_filled = imfill(I2,'holes');
boundaries = bwboundaries(BW_filled);
%------Plot the borders of the original grayscale image using the coordinates returned by bwboundaries-----------
for k=1:10
b = boundaries{k};
plot(b(:,2),b(:,1),'r','LineWidth',1);
end
0 Comments
Answers (2)
Image Analyst
on 20 Oct 2018
Try adapting this File Exchange code: https://www.mathworks.com/matlabcentral/fileexchange/32696-2d-line-curvature-and-normals
Jai Sri
on 6 Mar 2020
How to mark boundary of gray scale image in original color image?
1 Comment
Image Analyst
on 7 Mar 2020
This does not look like an answer to Nayana's question. If you have a question, post a new question and post both your gray scale image and your original color image.
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!