图像处理是计算机视觉领域的重要研究方向,MATLAB是一种功能强大的数学计算软件,可以用于图像处理和分析。下面是一些简单的MATLAB图像处理代码示例,包括图像增强、边缘检测、形态学处理、特征提取等。
1. 图像增强
图像增强是指通过一些技术手段,使图像的某些特征更加突出,从而达到改善图像质量的目的。MATLAB中有许多图像增强的函数和工具箱,例如直方图均衡化、对比度增强、亮度调整等。
% 直方图均衡化
img = imread('image.jpg');
img_eq = histeq(img);
imshow(img_eq);
title('直方图均衡化');
% 对比度增强
img = imread('image.jpg');
img_eq = imadjust(img, [0.5 0.5], [0.5 0.5]);
imshow(img_eq);
title('对比度增强');
% 亮度调整
img = imread('image.jpg');
img_eq = imadjust(img, [0.5 0.5], [0.5 0.5], [0.5 0.5]);
imshow(img_eq);
title('亮度调整');
2. 边缘检测
边缘检测是指检测图像中的边缘,即图像中亮度变化较大的区域。MATLAB中有许多边缘检测的函数和工具箱,例如edge()、edgeprop()等。
% 边缘检测
img = imread('image.jpg');
edges = edge(img);
imshow(edges);
title('边缘检测');
3. 形态学处理
形态学处理是指对图像进行一些操作,如开运算、闭运算、膨胀、腐蚀等,以达到改善图像质量的目的。MATLAB中有许多形态学处理的函数和工具箱,例如morphology()、edge()、edgeprop()等。
% 开运算
img = imread('image.jpg');
kernel = strel('disk', 3);
img_bw = imopen(img, kernel);
imshow(img_bw);
title('开运算');
% 闭运算
img = imread('image.jpg');
kernel = strel('disk', 3);
img_bw = imclose(img, kernel);
imshow(img_bw);
title('闭运算');
% 膨胀
img = imread('image.jpg');
kernel = strel('disk', 3);
img_bw = imdilate(img, kernel);
imshow(img_bw);
title('膨胀');
% 腐蚀
img = imread('image.jpg');
kernel = strel('disk', 3);
img_bw = imerode(img, kernel);
imshow(img_bw);
title('腐蚀');
4. 特征提取
特征提取是指从图像中提取有用的特征,以便进一步分析和处理。MATLAB中有许多特征提取的函数和工具箱,例如SIFT()、SURF()、ORB()等。
% SIFT特征提取
img = imread('image.jpg');
keypoints = detectSI