使用Matlab进行灰度化、二值化、边缘检测等图像处理操作
将操作细节逐一实施
1. 灰度化:
首先读入图像,然后使用Matlab自带的rgb2gray函数将彩色图像转换为灰度图像:
“`
% 读入彩色图像
img = imread(‘example.jpg’);% 灰度化
gray_img = rgb2gray(img);% 显示灰度图像
imshow(gray_img);
“`2. 二值化:
可以使用Matlab的imbinarize函数进行全局二值化,也可以使用自适应阈值法进行局部二值化。
(1)全局二值化:
“`
% 全局二值化
binary_img = imbinarize(gray_img);% 显示二值图像
imshow(binary_img);
“`(2)自适应阈值法:
“`
% 自适应阈值法
adaptive_binary_img = adaptthresh(gray_img, 0.5);% 显示二值图像
imshow(adaptive_binary_img);
“`3. 边缘检测:
常用的边缘检测算子包括Sobel算子、Prewitt算子、Laplacian算子和Canny算子。
以Sobel算子为例:
“`
% Sobel算子
sobel_img = edge(gray_img, ‘Sobel’);% 显示边缘图像
imshow(sobel_img);
“`完整代码:
“`
% 读入彩色图像
img = imread(‘example.jpg’);% 灰度化
gray_img = rgb2gray(img);% 全局二值化
binary_img = imbinarize(gray_img);% 自适应阈值法
adaptive_binary_img = adaptthresh(gray_img, 0.5);% Sobel算子
sobel_img = edge(gray_img, ‘Sobel’);% 显示图像
subplot(2, 2, 1);
imshow(img);
title(‘Original Image’);subplot(2, 2, 2);
imshow(gray_img);
title(‘Gray Image’);subplot(2, 2, 3);
imshow(adaptive_binary_img);
title(‘Adaptive Binary Image’);subplot(2, 2, 4);
imshow(sobel_img);
title(‘Sobel Edge Image’);
“`2023年05月08日 15:19