Very Basic Threshold & Edge Detection

11 次查看(过去 30 天)
Hi all, I have a colour image I need to threshold and edge detect. I know this will be quite a simple piece of code however I'm unable to get it working. I was wondering if you could help. Here's what I have so far.
I = imread('p0071.jpeg');
BW = edge(I,'sobel', thresh)
imshow(BW);
This snippet of code doesn't work, and I assume it's because it's in colour and I need to add some thresholding parameters? How do I add these parameters to get this code to work? Sorry for such a simple question but I've been messing around for over an hour with no success.
Paul
  2 个评论
Andreas Goser
Andreas Goser 2011-9-6
Maybe it is very basic. Maybe not. Without an error message, it remains guess work. Can you provide code that e.g. works with images from the MATLAB instalation like 'pillsetc.png' that give the same behaviour? and please also clarify if you just like the code to run and then play with the threshold or if you look for methods to auto-calculate a good threshold.
Paul Johnson
Paul Johnson 2011-9-7
Yes, I want to be able to alter the threshold value as I don't think it will work too well automatically. Here's the working code I have so far:
.
I = imread('p0071.jpg');
J = rgb2gray(I);
BW1 = edge(J,'sobel');
imshow(BW1);

请先登录,再进行评论。

采纳的回答

Paul Johnson
Paul Johnson 2011-9-12
I = imread('p0071.jpg');
J = rgb2gray(I);
BW1 = edge(J,'sobel', 0.5);
imshow(BW1);
  • Reads a colour image in.
  • Converts the image to greyscale
  • Applies Sobel edge detection and thresholding (modify 0.5 to change threshold level 0.1-0.99)
  • Display the processed image.

更多回答(1 个)

Walter Roberson
Walter Roberson 2011-9-6
"thresh" is not a keyword or a function: it is a numeric value that you have to supply if you want to use a different threshold than would be automatically chosen.
  2 个评论
Paul Johnson
Paul Johnson 2011-9-7
This is what I currently have:
.
I = imread('p0071.jpg');
J = rgb2gray(I);
BW1 = edge(J,'sobel');
imshow(BW1);
.
It reads the image in, converts it to greyscale and applies a sobel edge detection filter... before displaying it onscreen. How do I add a thresholding value to this please?
Walter Roberson
Walter Roberson 2011-9-7
BW1 = edge(J,'sobel',0.3); %for example

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by