收集4点子图像的有效方法,矩阵变换问题+抗锯齿

时间:2016-01-29 13:57:35

标签: java optimization bufferedimage antialiasing matrix-transform

快速回顾项目:

我正在制作一辆可以在手机拍摄照片的障碍物之间行驶的汽车。然后应将图片裁剪为“移动区域”或汽车可以移动的区域的大小。那应该是自动完成的。就我而言,我会这样做:

  1. 在您拍摄“障碍物地图”之前,您必须在地面上放一张纸,这样程序才能识别该区域的大小/图像应该转换为“垂直于地面。
  2. 在程序中,您将标记汽车可以移动的区域并将其裁剪。然后它会自动将所选区域变换为尽可能“垂直”,因此障碍物图将足以让汽车在其中移动,因为它将成为障碍物地图。
  3. 然后我有两个选项:自动识别障碍物或使其成为手动。如果我自动化它,我将不得不使用某种OpenCV障碍识别。其他id只是制作一个标记障碍的简单程序。之后,您将标记一个点,汽车应该移动到哪里,它将使用A 算法计算最佳路径。这个算法只给出了汽车应该移动的点,所以我和我学校的一些教授联系,他们现在正在帮助驾驶汽车并计算汽车应该转向某个位置的正确角度。*

    我有2个问题,都与BufferedImage有关。

    1. 过去有两个问题,我问过如何获得由4个随机点定义的子图像。我没有得到这样的答案,所以我自己做了,但我知道this方法非常缺乏,我想知道如何做得更好?
    2. 我的第二个问题是关于矩阵变换。我已经讨论过这个并得到this代码,它基本上是this的一个修改版本。代码限制了我输入bufferedimage的大小,我想知道如何“删除”这个限制,因为在某些情况下,图像需要升级,但代码仍然会对其进行裁剪。此外,我想在它上面有一些AA(抗锯齿),因为转换后的图像看起来很奇怪/像素化。
    3. 编辑:在第一个问题的代码中,Place_2D类中有一个方法线(Point p1,Point p2),它基本上创建了一个连接2个点的点的arraylist,创建了一条线。

1 个答案:

答案 0 :(得分:1)

抗锯齿将通过比最近邻居更好的采样方案来实现。通过切换到双线性插值,你将获得很好的改进。

每个反投影点落在四个像素之间。坐标的小数部分允许您计算要分配给这四个像素的颜色值的混合权重。

如果缩放系数很小(变换后的图像小于原始图像的四分之一),则可以预先模糊图像以避免其他伪影。