我需要以亚像素精度裁剪图像。例如,我可能需要创建一个带有角(108.5,350.9)和(368.3,230.1)的插值矩形裁剪,其尺寸为640x480。我怎样才能做到这一点?
编辑:拉伸裁剪区域以使其适合数据矩阵是一个合理的让步。但是,您不能只将裁剪的边框更改为整数坐标。
答案 0 :(得分:0)
嗯,我不确定我是否可以称之为答案,因为我真的不知道你的问题是什么,但我试图对你有所了解。
所以我猜你的问题源于一些误解。
首先,DPI,PPI或任何你想要使用的东西只不过是一个能告诉你每英寸有多少点,点,像素的因素。该因素允许您确定打印尺寸或在像素尺寸和英寸尺寸之间进行转换。 这与裁剪图像无关。
裁剪矩形区域是一项非常常见的任务。 具有子像素坐标的ROI也非常常见,因为它们的坐标通常来自产生非整数值的计算。
通常您只需将坐标舍入为整数,这样您的问题就会消失。
如果要获得子像素坐标的强度值,可以在相邻像素之间进行插值。但由于图像不能有半像素,因此您必须将该信息存储在具有更多或更少像素的图像中。
所以,如果我不想使用圆角坐标,我会怎么做。
如果我的坐标是> = x.5我会添加一列或一行,否则我会跳过该像素。 如果我要添加一列或一行,我会插入它的值。
但说实话,我没有看到任何用例,除了在我的职业生涯中使用整数坐标进行裁剪,我从来没有做过任何事情。
您无法打印像素的分数,也无法显示它们,那么重点是什么?
答案 1 :(得分:0)
解决方案似乎要求您计算要从图像中裁剪出的矩形的中心,以及矩形的高度和宽度。然后只需放大整个图像,直到所需的矩形具有整数尺寸,然后进行常规裁剪。您必须按单独的数量缩放水平和垂直尺寸,这样会略微扭曲裁剪部分,您必须调整您使用的图像编码格式的失真。