在imresize
文档here中,它提到了以下内容:
B = imresize(A,[numrows numcols])返回具有该数字的图像B. 由[numrows numcols]指定的行和列。无论是数字还是 numcols可以是NaN,在这种情况下,imresize计算行数 或列自动保留图像宽高比。
在以下部分中:
任何数字或数字都可以是NaN,在这种情况下会进行计算 自动保留图像的行数或列数 宽高比
调整图片大小后,NaN
是否会出现,或者是否指的是不确定numrows
或numcols
?
因此,如果我的图片大小为365x147
,并希望将其大小调整为512x512
,那么在保留宽高比并指定numrows
和numcols
的情况下,是否会保留宽高比512
?
感谢。
答案 0 :(得分:3)
答案是否定的。保持纵横比意味着保持物理尺寸的比率(以像素为单位)。例如,对于尺寸为365×147的图像,纵横比长度(y):长度(x)是365:147。为了保持该纵横比,调整大小的图像必须满足长度(y):长度(x)=长度(y)/长度(x):1。
例如,如果您的图像大小为365x147并想要将其大小调整为512x512,则可以将宽高比从365:147更改为512:512,或者换句话说,从2.48:1更改为1:1。
另一方面,如果你执行
b = imresize(a,512/147);
其中a的大小为365 x 147,您将保持相同的宽高比(在舍入误差范围内)并生成大小为1271 x 512的图像。如果执行
b = imresize(a,512/365);
保留相同的宽高比但生成尺寸为512 x 206的图像。
答案 1 :(得分:2)
如果您的图片A
的尺寸为365x147
,并希望将其尺寸调整为512x512
,请使用
B = imresize(A, [512 512]);
如果你想要,例如高度为512,但您想保留比例,请使用
B = imresize(A, [512 NaN]);