MATLAB截取图像特定区域
你好!你可以仔细阅读这篇文章,了解一下MATLAB的截取图像的特定区域的方法。
截取程序
imcrop函数
功能:用于返回图像的一个裁剪区域。可把图像显示在一个图像窗口中。
代码片示例
.
1
| picture_1 =imcrop(picture,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))])
|
代码说明:picture为要裁剪的图片
picture_1裁剪后的图片
x(1),y(1)裁剪起始坐标点
abs(x(1)-x(2)),abs(y(1)-y(2))裁剪长度
读取图片
1 2 3 4 5 6 7 8
| save_path='D:\picture\'; %图片地址文件夹 img_path_list = dir(strcat(save_path,'*.jpg')); img_num=length(img_path_list); for i = 1:img_num picture_name =img_path_list(i).name; picture = imread(strcat(save_path,picture_name)); end
|
获取截取点坐标
ginput函数
功能: 允许用户以交互方式使用鼠标选定要剪切的区域以此获取两个坐标点并以矩形方式裁剪
完整代码
代码片
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| save_path='D:\picture\';
img_path_list = dir(strcat(save_path,'*.jpg'));
img_num=length(img_path_list);
for i = 1:img_num
picture_name =img_path_list(i).name;
picture = imread(strcat(save_path,picture_name));
imshow(picture);
[x,y]=ginput(2);
picture_1 =imcrop(picture,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))]);
imwrite(picture_1,[num2str(i),'.jpg']);
end
|
截取前
截取后