how can i perform edge detection efficiently in matlab?

2 views (last 30 days)
i have tried four methods i.e. sobel,prewitt,roberts,log but not getting single correct o/p on scanned images.
this is my code- image=imread('sample_img.jpg');
image_gray=rgb2gray(image);
image_BW=im2bw(image_gray);
imshow(image_BW);
image_comp = imcomplement(image_BW);
image_filter = medfilt2(image_comp);
image_fill=imfill(image_filter,'holes');
BW = edge(image_fill,'log',0.2);
at place of "log",i tried other methods too.
thanks for the help..

Answers (2)

Chandra Shekhar
Chandra Shekhar on 28 Apr 2013
I = imread('circuit.tif');
BW1 = edge(I,'prewitt');
BW2 = edge(I,'canny');
figure, imshow(BW1)
figure, imshow(BW2)

Image Analyst
Image Analyst on 28 Apr 2013
So what's wrong with what you did? There are lots of edge detectors but until I see your image and know what your issue with edge() is, I'm hesitant to just go and list and explain a bunch of edge detection algorithms, which you can look up online anyway.
  1 Comment
Aditya Shrivastava
Aditya Shrivastava on 16 May 2013
hello.. i made a customized code for edge detection... n it worked.. but thanks for the indulgence..

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!