matlab数字图像处理函数
时间: 2024-12-26 08:19:45 浏览: 14
### MATLAB 数字图像处理常用函数
#### 图像读取与显示
- **imread**: 用于从文件中读取图像并将其存储为矩阵形式。
```matlab
img = imread('example.jpg');
```
- **imshow**: 显示图像,支持多种类型的图像数据。
```matlab
imshow(img);
```
#### 获取图像尺寸信息
- **size**: 返回数组各维度的长度。对于图像而言,可用于获取高度、宽度及颜色通道数量[^2]。
```matlab
[height, width, channels] = size(img);
```
- **ndims**: 查询数组的总维度数目,帮助确认输入是否为二维灰度图还是三维彩色图。
```matlab
dims = ndims(img);
```
#### 基本变换
- **rgb2gray**: 将RGB色彩空间转换成单通道灰阶表示,适用于需要简化计算的情况。
```matlab
grayImg = rgb2gray(rgbImage);
```
- **ind2rgb**, **label2rgb**: 实现索引图片转RGB或标签映射至伪彩。
#### 几何操作
- **imresize**: 改变图像分辨率大小而不改变其内容特征。
```matlab
resizedImg = imresize(originalImg, scaleFactor);
```
- **imrotate**: 绕中心旋转给定角度。
```matlab
rotatedImg = imrotate(imageMatrix, angleDegrees);
```
#### 点运算(像素级)
- **imadjust**: 对比度调整工具,通过拉伸直方图来改善视觉效果。
```matlab
enhancedContrastImg = imadjust(inputGrayScaleImage);
```
- **histeq**: 执行自适应直方图均衡化以提升局部对比度。
```matlab
equalizedHistImg = histeq(grayLevelInput);
```
#### 局部邻域处理
- **fspecial**: 创建预定义的空间滤波器模板,如高斯模糊核等。
```matlab
h = fspecial('gaussian', [5 5], sigmaValue); % 定义一个5×5的Gaussian Filter
filteredImg = imfilter(sourceImage,h,'replicate');% 应用卷积过滤
```
- **medfilt2**: 中值滤波去除椒盐噪声的同时保持边缘清晰。
```matlab
denoisedByMedianFiltering = medfilt2(noisyImage,[m n]);
```
#### 形态学操作
- **imerode**, **imdilate**: 分别执行腐蚀膨胀形态学算子,常用来清理二值图像中的细小结构。
```matlab
se = strel('disk',radiusSize); % 构建圆形SE(Structuring Element)
erodedBinaryImg = imerode(binarySourceImage,se);
dilatedBinaryImg = imdilate(erodedBinaryImg,se);
```
#### 边缘检测
- **edge**: 提供Canny等多种算法实现边界定位。
```matlab
edgesDetected = edge(grayscaleOrIntensityImage,'canny',[lowThreshold highThreshold]);
```
#### 特征提取
- **regionprops**: 计算连通区域内各种统计特性参数,辅助后续分类识别工作。
```matlab
measurements = regionprops(labeledImage,'Area','Centroid');
```
#### 图像分割
- **watershed**: 利用水分汇集原理完成复杂背景下的前景物体分离任务。
```matlab
segmentedObjects = watershed(markerBasedGradientMap);
```
阅读全文