gpt4 book ai didi

java - 从照片创建适合步行的南北世界

转载 作者:行者123 更新时间:2023-12-01 15:35:44 25 4
gpt4 key购买 nike

我有一组 100 张照片,拍摄于树林外 40x40 米的区域。

40x40 的区域被分为 10m 的部分,因此有 25 个拍摄地点。在每个位置,面向四个罗盘位置(北、东、南、西)拍摄一张照片。

关于如何将这些照片拼接在一起,有什么建议吗?就像谷歌地图如何让您在街景中行走一样?

谢谢!

最佳答案

我会将图像存储在一个三维数组中,如下所示:

image[x][y][direction];

然后,使用键或鼠标监听器更改查看器的 x 和 y 位置。因此,例如,如果您的图像在与您的类相同的目录中被命名为“0_0_N.jpg”(等),您可能会执行以下操作:

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class View {
private static final char[] DIRECTION_NAME = { 'N', 'E', 'S', 'W' };
private static final int[] DIRECTION_X = { 0, 1, 0, -1 };
private static final int[] DIRECTION_Y = { 1, 0, -1, 0 };
private static final int WIDTH = 5;
private static final int HEIGHT = 5;

private final JLabel label;
private final ImageIcon[][][] images;
private int x;
private int y;
private int direction;

public View() throws IOException {
images = new ImageIcon[WIDTH][HEIGHT][4];
for(int x = 0; x < WIDTH; x++) {
for(int y = 0; y < HEIGHT; y++) {
for(int direction = 0; direction < 4; ++direction) {
String name = x + "_" + y + "_" + DIRECTION_NAME[direction] + ".jpg";
images[x][y][direction] = new ImageIcon(ImageIO.read(View.class.getResourceAsStream(name)));
}
}
}

label = new JLabel();
label.setIcon(images[0][0][0]);

JFrame frame = new JFrame("View");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);

label.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_LEFT:
direction = (direction + 3) % 4;
break;
case KeyEvent.VK_RIGHT:
direction = (direction + 1) % 4;
break;
case KeyEvent.VK_UP:
{
int newX = x + DIRECTION_X[direction];
int newY = y + DIRECTION_Y[direction];
if(newX >= 0 && newX < WIDTH && newY >= 0 && newY < HEIGHT) {
x = newX;
y = newY;
}
break;
}
}
label.setIcon(images[x][y][direction]);
}
});
label.requestFocus();
}

public static void main(String[] args) throws IOException {
new View();
}
}

关于java - 从照片创建适合步行的南北世界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com