如何在Java中进行四坐标非投影图像变换?
How to do four-coordinate non-projective image transformation in Java?
我想将 Java 中的 BufferedImage
从矩形转换为任意凸四边形,类似于此:
但是我不想使用投影变换,而是想简单地使用线性变换,根据我希望最终图像的角所在的四个坐标,在适当的地方拉伸和挤压图像。
在Java中有什么方法可以做到这一点?
编辑:似乎一种解决方案是使用 JOGL 在 GL 中绘制带纹理的四边形,按我的意愿进行变形。我不确定支持和效率,将进一步调查。
我最终在 JOGL 中编写了自己的 class,将 BufferedImage
转换为 Texture
,将其映射到四边形上,并将其渲染为 OffscreenAutoDrawable
.最后,可以使用 AWTGLReadBufferUtil.readPixelsToBufferedImage()
.
将其转换为 BufferedImage
我想将 Java 中的 BufferedImage
从矩形转换为任意凸四边形,类似于此:
但是我不想使用投影变换,而是想简单地使用线性变换,根据我希望最终图像的角所在的四个坐标,在适当的地方拉伸和挤压图像。
在Java中有什么方法可以做到这一点?
编辑:似乎一种解决方案是使用 JOGL 在 GL 中绘制带纹理的四边形,按我的意愿进行变形。我不确定支持和效率,将进一步调查。
我最终在 JOGL 中编写了自己的 class,将 BufferedImage
转换为 Texture
,将其映射到四边形上,并将其渲染为 OffscreenAutoDrawable
.最后,可以使用 AWTGLReadBufferUtil.readPixelsToBufferedImage()
.
BufferedImage