MATLAB中裁剪图像
时间: 2025-02-25 17:59:24 浏览: 106
### MATLAB 中 `imcrop` 函数用于图像裁剪
在 MATLAB 中,`imcrop` 是一个非常强大的工具,专门设计用来从图像中裁剪出指定区域。此功能不仅支持交互式的裁剪操作,还允许编程方式定义裁剪范围[^1]。
#### 使用 `imcrop` 进行交互式裁剪
当调用 `imcrop(I)` 或者 `imcrop(h)` 时,会打开一个新的窗口显示输入图像 I 并让用户通过鼠标拖拽来选择要保留的矩形区域。一旦选择了感兴趣的区域并确认后,该函数返回所选部分的新图像矩阵。
```matlab
% 加载示例图片
I = imread('pout.tif');
imshow(I);
% 启动交互模式下的 imcrop 工具
J = imcrop;
figure, imshow(J);
```
#### 编程设定裁剪框位置与大小
除了手动挑选外,也可以直接给定坐标参数 `(x,y,width,height)` 来精确控制裁剪的位置和尺寸:
- **x**: 裁剪区左上角相对于原图起点横坐标的偏移量;
- **y**: 裁剪区左上角相对于原图起点纵坐标的偏移量;
- **width**: 所需裁剪宽度;
- **height**: 高度高度;
下面的例子演示了如何利用这些参数自动完成一次固定的裁剪动作:
```matlab
% 定义裁剪边界框 (单位像素)
rect = [70, 85, 90, 120]; % [left, bottom, width, height]
% 应用非互动型 imcrop 方法获取子图 J
J = imcrop(I, rect);
figure, imshow(J), title('Cropped Image');
```
上述代码片段展示了两种不同场景下使用 `imcrop` 实现图像裁剪的方式——一种是基于用户的图形界面交互选取感兴趣区域,另一种则是完全由程序逻辑决定具体的裁剪参数。
阅读全文
相关推荐


















