MATLABで画像のエッジ検出を行うには
MATLABで画像のエッジ検出を行う際にはいくつかの関数が利用できます。その中でもっとも利用されている手法は、Sobelオペレータ、Prewittオペレータ、Cannyエッジ検出などです。下記に、これらの手法を使ったエッジ検出を行うサンプルコードを示します。
- ソベルオペレータによるエッジ検出
% 读取图像
image = imread('image.jpg');
% 将图像转换为灰度图
grayImage = rgb2gray(image);
% 使用Sobel算子进行边缘检测
edgeImage = edge(grayImage, 'Sobel');
% 显示原始图像和边缘检测结果
subplot(1,2,1), imshow(image), title('原始图像');
subplot(1,2,2), imshow(edgeImage), title('边缘检测结果');
- Prewittオペレータによるエッジ検出
% 读取图像
image = imread('image.jpg');
% 将图像转换为灰度图
grayImage = rgb2gray(image);
% 使用Prewitt算子进行边缘检测
edgeImage = edge(grayImage, 'Prewitt');
% 显示原始图像和边缘检测结果
subplot(1,2,1), imshow(image), title('原始图像');
subplot(1,2,2), imshow(edgeImage), title('边缘检测结果');
- Cannyエッジ検出器を用いる
% 读取图像
image = imread('image.jpg');
% 将图像转换为灰度图
grayImage = rgb2gray(image);
% 使用Canny边缘检测
edgeImage = edge(grayImage, 'Canny');
% 显示原始图像和边缘检测结果
subplot(1,2,1), imshow(image), title('原始图像');
subplot(1,2,2), imshow(edgeImage), title('边缘检测结果');
これらのコードにおける「image.jpg」はサンプル画像のファイル名ですので、適宜読み替えてください。