MATLAB截取图片
时间: 2023-07-01 21:28:44 浏览: 128
要在 MATLAB 中截取图片,你可以使用 `imcrop` 函数。该函数可以在图像中选择一个矩形区域,并返回该区域的副本。
以下是一个简单的示例代码,演示如何使用 `imcrop` 函数截取图像:
```matlab
% 读取图像
img = imread('image.jpg');
% 显示原始图像
figure;
imshow(img);
title('原始图像');
% 选择截取区域
rect = getrect();
% 截取图像
croppedImg = imcrop(img, rect);
% 显示截取后的图像
figure;
imshow(croppedImg);
title('截取后的图像');
```
在运行此脚本时,你将看到一个新的窗口,其中包含原始图像。选择要截取的区域,然后按下 Enter 键。接下来,你将看到另一个窗口,其中包含截取后的图像。
相关问题
matlab截取图片中心区域
要在 MATLAB 中截取图片中心区域,可以使用 `imcrop` 函数和一些简单的计算。具体步骤如下:
1. 读取图像并获取其大小:
```matlab
img = imread('image.jpg');
imgSize = size(img);
```
2. 计算要截取的中心区域的左上角坐标和宽度/高度:
```matlab
cropWidth = 200; % 截取区域的宽度
cropHeight = 200; % 截取区域的高度
% 计算左上角坐标
cropX = round((imgSize(2)-cropWidth)/2);
cropY = round((imgSize(1)-cropHeight)/2);
```
3. 使用 `imcrop` 函数截取图像:
```matlab
croppedImg = imcrop(img, [cropX, cropY, cropWidth-1, cropHeight-1]);
```
注意,这里的 `cropX` 和 `cropY` 是左上角的坐标,而不是中心点的坐标。因此,我们需要将宽度和高度减去 1,以确保截取的区域大小是正确的。
完整的代码如下:
```matlab
% 读取图像并获取其大小
img = imread('image.jpg');
imgSize = size(img);
% 计算要截取的中心区域的左上角坐标和宽度/高度
cropWidth = 200; % 截取区域的宽度
cropHeight = 200; % 截取区域的高度
cropX = round((imgSize(2)-cropWidth)/2);
cropY = round((imgSize(1)-cropHeight)/2);
% 使用 imcrop 函数截取图像
croppedImg = imcrop(img, [cropX, cropY, cropWidth-1, cropHeight-1]);
```
在运行此脚本时,你将得到一个截取后的图像,其中心区域已被保留。
matlab截取批量图片中心区域
要在 MATLAB 中截取批量图片的中心区域,可以使用 `imcrop` 函数和一个 `for` 循环。具体步骤如下:
1. 确定要截取的中心区域的大小:
```matlab
cropWidth = 200; % 截取区域的宽度
cropHeight = 200; % 截取区域的高度
```
2. 创建一个循环,遍历要截取的所有图片:
```matlab
% 循环遍历所有图片
for i = 1:numImages
% 读取图像并获取其大小
img = imread(sprintf('image_%d.jpg', i));
imgSize = size(img);
% 计算要截取的中心区域的左上角坐标
cropX = round((imgSize(2)-cropWidth)/2);
cropY = round((imgSize(1)-cropHeight)/2);
% 使用 imcrop 函数截取图像
croppedImg = imcrop(img, [cropX, cropY, cropWidth-1, cropHeight-1]);
% 保存截取后的图像
imwrite(croppedImg, sprintf('image_%d_cropped.jpg', i));
end
```
注意,在这个循环中,我们使用 `sprintf` 函数来生成每个图像的文件名。例如,如果 `i=1`,则文件名将是 `image_1.jpg`。我们还使用 `imwrite` 函数将截取后的图像保存到新文件中。
完整的代码如下:
```matlab
% 确定要截取的中心区域的大小
cropWidth = 200; % 截取区域的宽度
cropHeight = 200; % 截取区域的高度
% 确定要截取的图像数量
numImages = 10;
% 循环遍历所有图片
for i = 1:numImages
% 读取图像并获取其大小
img = imread(sprintf('image_%d.jpg', i));
imgSize = size(img);
% 计算要截取的中心区域的左上角坐标
cropX = round((imgSize(2)-cropWidth)/2);
cropY = round((imgSize(1)-cropHeight)/2);
% 使用 imcrop 函数截取图像
croppedImg = imcrop(img, [cropX, cropY, cropWidth-1, cropHeight-1]);
% 保存截取后的图像
imwrite(croppedImg, sprintf('image_%d_cropped.jpg', i));
end
```
在运行此脚本时,你将得到一组截取后的图像,其中心区域已被保留。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![m](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)