Java 两幅图像的图像合成

Java 两幅图像的图像合成,java,algorithm,image,image-processing,image-recognition,Java,Algorithm,Image,Image Processing,Image Recognition,我试图解决一个在Java中合成两个图像的问题。程序将获取第一个图像的一部分,并在第二个图像上经过它。目标是使两个图像之间的边界不太可见。选择边界时,必须确保边界处两幅图像之间的差异很小 我的任务: 编写一个方法来选择两个图像之间的边界。该方法将接收输入图像的重叠部分。必须首先对其进行变换,以便边界始终从左上角开始到右下角 注意: 返回的图像不应该是连接的图像,而是给出了两个图像中使用的部分 边界线的像素可以用常量(SEAM)标记。第一图像的像素可以用整数0标记,第二图像的像素可以用整数1标记。

我试图解决一个在Java中合成两个图像的问题。程序将获取第一个图像的一部分,并在第二个图像上经过它。目标是使两个图像之间的边界不太可见。选择边界时,必须确保边界处两幅图像之间的差异很小


我的任务:

编写一个方法来选择两个图像之间的边界。该方法将接收输入图像的重叠部分。必须首先对其进行变换,以便边界始终从左上角开始到右下角

注意: 返回的图像不应该是连接的图像,而是给出了两个图像中使用的部分

边界线的像素可以用常量
(SEAM)
标记。第一图像的像素可以用整数0标记,第二图像的像素可以用整数1标记。选择边界线后,可以使用
泛光填充
算法将额外像素填充为0或1

注意:图像可以表示为一个图形,其中每个像素与其左、右、上、下相邻像素相连。因此,使用洪水填充类似于深度优先搜索

为了使边界变小,必须使用最短路径算法来选择边界

注意:除了数组之外,我不能使用任何java数据结构(甚至不能使用ArrayList)


伙计们,我是这方面的新手,正在努力解决这个问题。我必须采取什么步骤来解决这个问题?或者指向教程的指针

我会这样做:

选择选中边框的宽度。随你的便。 1.以像素为单位找出可能的最大偏移量。那是D。 2.对于正方形(+-D,+-D)中所有可能的移位,找到边界的k(相关系数)。边界在轮班中间。 3.k值最大的位移是最好的。这是理所当然的。 4.现在开始移动边界,以相同的方式通过“k”进行检查。找到它的位置。完成了

如果D较大,且过程较长,则分两个(或更多)阶段进行。在第一阶段,计算k的步骤较大,最后一阶段的步骤为1。您还可以使用以前的筛选


如果边界或相对图像的位置可以改变,算法基本上不会改变——只是增加了在不同轻微改变的位置和随后改变的边界之间尝试最佳k的功能

“除了数组,我不能使用任何java数据结构(甚至不能使用ArrayList)”这是家庭作业吗?不,不是。如果是这样的话,我会把它标记为家庭作业。那么,为什么你不能使用任何Java数据结构(除了数组),甚至不能使用你自己设备的结构呢?这就是我试图解决的问题的要求,我想照原样做。你能帮我完成我可以遵循的最初步骤吗?例如,如何将图像表示为graghs?这个问题不是关于合成,而是关于分割。