How to mark specific points in a boundary?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (2)
Image Analyst
am 20 Okt. 2018
Try adapting this File Exchange code: https://www.mathworks.com/matlabcentral/fileexchange/32696-2d-line-curvature-and-normals
Jai Sri
am 6 Mär. 2020
How to mark boundary of gray scale image in original color image?
1 Kommentar
Image Analyst
am 7 Mär. 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.
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!