1

我想使用 imcrop 在 matlab 中裁剪图像。但是,有时它会产生比我想要的尺寸大一号的图像。基本上,我的问题与此相同。 http://www.mathworks.se/matlabcentral/answers/46737-how-do-i-make-the-imcrop-function-accurate-to-the-pixel 但是,即使这样也没有解决。请帮忙!

4

2 回答 2

2

我无法真正解决问题。但是,我应用了一个简单的解决方法。我使用 imcrop 来裁剪所需的尺寸。然后再次将裁剪后的图像调整为所需大小。

于 2013-02-05T11:47:44.637 回答
2

imcrop确实返回“正确大小”,即其文档中指定的大小。一个矩形有时r1 = [20 20 40 30]并不总是21 x 11 像素宽。

如果您对正确大小的期望不同,您可以对矩形进行不同的索引。如果您想要一个以像素 (20,20) 为左上边缘、高 20 像素、宽 10 像素的矩形,您可以指定r1 = [20, 20, 39, 29].

imcrop之所以这样工作,是因为它对由像素组成的图像数据进行操作。正在索引像素,而不是空间中的点。在数学上,一个点没有宽度和高度,但一个像素具有一个像素的宽度和高度。

举一个极端的例子,r2 = [5, 6, 8, 9]包括从第 5 行到第 6 行和第 8 到第 9 列的像素,因此是 2 x 2 像素宽。

于 2013-01-30T20:32:28.047 回答