How to remove frame boundary from object boundary
Afficher commentaires plus anciens
How can I remove the false object boundaries detected at the frame edges ? I only need the curve part to be my boundary.
Here is my code:
clc; clear; close all;
OM = imread('002.jpg');
imshow(OM)
W = rgb2gray(OM);
imshow(W)
binaryImage=imbinarize(W);
hold on
imshow(binaryImage);
BW = bwareafilt(binaryImage,1);
[B,L,N] = bwboundaries(BW,'noholes');
imshow(BW); hold on;
for k=1:length(B),
boundary = B{k};
if(k > N)
plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2);
else
plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2);
end
end

2 commentaires
Varun Garg
le 5 Juin 2018
Can you attach the image for me to replicate the whole thing?
Syed Sameer Ul Hasan
le 5 Juin 2018
Réponses (1)
KSSV
le 5 Juin 2018
If (x,y) are your boundary points......something like below should work:
[m,n] = size(I) ;
%
x(x==1) = [] ;y(x==1)= [] ;
x(x==m) = [] ;y(x==m) = [] ;
x(y==n) = [] ;y(y==n) = [] ;
Catégories
En savoir plus sur Blocked Images dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!