Edge Detection - Customizing Masks
古いコメントを表示
I am trying to apply a Roberts-style edge detection to an image, however I do not want to use the Roberts algorithm supplied by the matlab code i.e. NOT: edge(I,'roberts'). The Roberts masks I need to apply to the image are: x=[1 0;0 -1] y=[0 -1;1 0], which is slightly different that MATLAB's built-in edge(I,'roberts') edge detector.
How can I apply custom Roberts, Sobel, and Prewitt edge detectors in MATLAB?
回答 (1 件)
Image Analyst
2011 年 7 月 9 日
1 投票
Yes. That will work. Not sure about the Z though - you might want to take Z = sqrt(single(X).^2 + single(Y).^2) instead. Also, you might want to look into conv2(), which I believe is more highly optimized for speed than imfilter. Be sure to use fliplr and flipud on the masks if the orientation is important though since conv2 flips the kernel.
カテゴリ
ヘルプ センター および File Exchange で Object Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!