我想在 matlab 中编写一个代码,它将接受来自隐式给定目录的图像,并在旅途中对每个图像应用 Sobel 边缘检测算法。请帮忙
问问题
364 次
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 回答