matlab中imcrop函数的具体使用

本文介绍了使用MATLAB进行图像裁剪的方法,并针对常见的尺寸不准确问题提供了详细的解决方案。通过调整裁剪参数确保准确获得所需的图像区域。

I=imread('图像名字(带扩展名及路径)');%首先读入一幅待裁剪的图像

I2=imcrop(I,[a b c d]);%利用裁剪函数裁剪图像,(a,b)表示裁剪后左上角像素在原图像中的位置;c表示裁剪后图像的宽,d表示裁剪后图像的高

[a b c d]对应[Xmin Ymin Width Height],Xmin是横向第1个像素x坐标,Ymin是纵向第1个像素y坐标;

以上介绍的原文链接:https://blog.csdn.net/u010603798/article/details/38681939
以上的介绍是有些错误的。

有1点易出错的地方想要补充:
图像块左上角像素(a,b)的确定是基于图像坐标系的,如下图:
在这里插入图片描述
x,y的范围是从1开始的,所以最小值是1,此处x,y和行列号正好是相反的,容易弄反。

举例:
我要裁剪的是左下角512*512的图块,如下:
在这里插入图片描述
输入代码:

A=imcrop(data,[1 89 512 512]);

裁剪结果:
在这里插入图片描述
在这里插入图片描述
显然,得到的不是512*512,实际应该将这个宽度和高度都减一。

A=imcrop(data,[1 89 511 511]);

更改后得到的变量范围就对了,如下图。打开原图的矩阵和裁剪后的矩阵发现裁剪结果正确。
在这里插入图片描述

关于宽和高度要减一,参考网站:

https://blog.csdn.net/shanchuan2012/article/details/50926205

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值