Radon transform and Prewitt filters for hair removal

4 次查看(过去 30 天)
Hi All,
I'm working on dermoscopic images (skin cancer images)that contains a light and thick hair,how can detect the predominant orientation of hairs in the image by using Radon transform, followed by filtering the image by Prewitt filters using the orientation of existing hairs I tried to write this code :
if true
% %%Radon transform and Prewitt filters
rgbImage = imread('hair.bmp');
redChannel =rgbImage(:, :, 1);
greenChannel =rgbImage(:, :, 2);
blueChannel =rgbImage(:, :, 3);
theta = 0:180;
[R,xp] = radon(rgbImage,theta);
BW = edge(rgbImage,'prewitt',[],xp);
imshow(R)
imshow(BW)
end
but I've got this error message :
Error using edge>parse_inputs (line 607) Invalid input arguments.
Error in edge (line 190) [a,method,thresh,sigma,thinning,H,kx,ky] = parse_inputs(varargin{:});
Error in Untitled2 (line 12) BW = edge(rgbImage,'prewitt',[],xp);
I attached a bitmap image contains hair called (hair.bmp),could any one guid me please because I'm really stuck in my project,thanks in advance. Hamed

回答(3 个)

Image Analyst
Image Analyst 2013-9-29
The documentation for edge() says:
Class Support
I is a nonsparse 2-D numeric array.
BW isa 2-D array of class logical.
rgbImage is not a 2D image - it's a 3D color image. You need to pass one of the color channels you extracted into edge(), not the full RGB image.
BW = edge(greenChannel,'prewitt',[],xp);
  8 个评论
hamed abdulaziz
hamed abdulaziz 2013-9-29
my be ? how can I deal with a vector xp as a string?is that possible?

请先登录,再进行评论。


hamed abdulaziz
hamed abdulaziz 2013-9-29

asma arafat
asma arafat 2017-5-9
how i can remove eyebrows from an image to use edge detectors after that and i don't need eyebrows to detect as edge. any help!!?

Community Treasure Hunt

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

Start Hunting!

Translated by