0

我想在 matlab 中编写一个代码,它将接受来自隐式给定目录的图像,并在旅途中对每个图像应用 Sobel 边缘检测算法。请帮忙

4

1 回答 1

0

MATLAB 中的 Sobel 边缘检测仅适用于灰度图像,因此您需要将任何图像转换为灰度表示。如果您在桌面上有一个所有图像所在的文件夹,那么下面的代码片段可以满足您的需求。

dirname = '~/Desktop/imgs/';
files = dir([dirname, '*.png']);
files = {files.name}';
for ifile = 1:numel(files)
    imfile = [dirname, files{ifile}];
    im = imread(imfile);               % Read the image file
    img = rgb2gray(im);                % Convert to grayscale
    ime = edge(img, 'sobel');          % Edge detection

    figure(1)
    imshow(ime);
    outname = ['edge_', files{ifile}];
    imwrite(ime, outname);
end

希望有帮助。

于 2013-07-13T14:16:31.537 回答