Java 围绕x轴倾斜缓冲器图像
我的项目:我正在从一个Java 围绕x轴倾斜缓冲器图像,java,image-processing,bufferedimage,jai,Java,Image Processing,Bufferedimage,Jai,我的项目:我正在从一个int[]创建一个地图/地形,输出是一个缓冲图像 问题:我想将缓冲图像向后倾斜25度(关于x轴) 也就是说,我想将其转换为: _____ | | | | | | ----- 像这样的事情 ____ / \ / \ / \ ---------- 我正在看,听上去JAI的透视变换可能会奏效 问题:如何将透视变换应用于缓冲图像?这是将图像向后倾斜的正确方法吗?我认为您需要Java3d,或者自己进行计算。基本
int[]
创建一个地图/地形,输出是一个缓冲图像
问题:我想将缓冲图像
向后倾斜25度(关于x轴)
也就是说,我想将其转换为:
_____
| |
| |
| |
-----
像这样的事情
____
/ \
/ \
/ \
----------
我正在看,听上去JAI的透视变换
可能会奏效
问题:如何将
透视变换
应用于缓冲图像
?这是将图像向后倾斜的正确方法吗?我认为您需要Java3d,或者自己进行计算。基本上,您可以使用纹理对平面进行三维旋转。查看JHLAB过滤器:尤其是“透视过滤器” 编辑: 此代码将从以下内容转换图像:
对此:
看起来它可能有潜力,可以试一试。我会暂时接受这个答案,谢谢。
public void perspective() throws Exception{
BufferedImage srcImage = ImageIO.read(new File("flower.jpg"));
BufferedImage destImage = null;
int w = srcImage.getWidth();
int h = srcImage.getHeight();
PerspectiveFilter perspectiveFilter = new PerspectiveFilter();
perspectiveFilter.setCorners(w/4, 0, w-w/4, 0, w, h, 0, h);
destImage = perspectiveFilter.filter(srcImage, destImage);
ImageIO.write(destImage,"jpg",new File("modified_flower.jpg"));
}