0

项目快速回顾:

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

  1. 在您拍摄“障碍物地图”之前,您必须在地面上放一张纸,这样程序就会识别区域的大小/图像应该被转换为“垂直”于地面的方式。
  2. 在程序中,您将标记汽车可以移动的区域并对其进行裁剪。然后它会自动将所选区域转换为尽可能“垂直”,因此障碍物贴图足以让汽车在其中移动,因为它是障碍物贴图。

然后我有两个选择:要么自动识别障碍物,要么手动进行。如果我想让它自动化,我将不得不使用某种 OpenCV 障碍物识别。Else id 只是制作一个简单的程序来标记障碍物。之后,您将标记一个点,汽车应该移动到的位置,它会使用 A算法计算最佳路径。这个算法只给出了汽车应该移动的点,所以我联系了我学校的一些教授,他们现在正在帮助汽车转向和计算汽车应该转向的正确角度才能到达某个位置。*

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

  1. 过去的两个问题,我问如何获得由 4 个随机点定义的子图像。我这样做没有答案,所以我自己做了,但我知道这种方法非常低效,我想知道如何才能做得更好?
  2. 我的第二个问题是关于矩阵变换。我已经在讨论这个问题并得到了这个代码,它基本上是这个代码的修改版本。代码将我限制为输入缓冲图像的大小,我想知道如何“删除”这个限制,因为在某些情况下需要放大图像,但代码会不断裁剪它。我也想在上面加上某种 AA(抗锯齿),因为转换后的图像看起来很奇怪/像素化。

编辑:在第一个问题的代码中,在类 Place_2D 中有一个方法 line(Point p1, Point p2) ,它基本上创建了一个连接 2 个点的点数组列表,创建了一条线。

4

1 回答 1

1

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

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

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

于 2016-01-29T15:07:35.507 回答