如何使用java将多个分割图像重叠组合成原始图像?

时间:2013-08-07 08:46:15

标签: java image-processing

我有2张图片如下:

image part 1

image part 2

我想自动将它们组合在一起,希望它可以在Java中完成

combined images

如何检测像素位置并校正边缘以合并两个图像,因为两个图像都有重叠并且不知道哪个是要合并的正确边缘?可以提供任何算法吗?

1 个答案:

答案 0 :(得分:1)

ImageJ是一个非常好的java图像处理库。它可能有插件可以做到这一点,所以也许值得一试。

我首先尝试在两个图像中找到相同的位置。在两个图像上垂直绘制线条轮廓,并查看像素值和y值是否相同。如果图像只在一个位置完全相同,那么应该很容易。如果有多个像素相同的位置或者y方向的像素从不相同,那么我认为你的问题可能没有一个单一的解决方案。

以下是一些可以帮助您入门的代码

public class CombineImages implements PlugIn
{


@Override
public void run(String arg0) {
    // TODO Auto-generated method stub

}

public ImagePlus combineImages(ImageProcessor ip1, ImageProcessor ip2){

    //Get a line of Y pixel values for the first image for each x position and add them to a list
    ArrayList<Roi> roiList1 = new ArrayList<Roi>();
    for(int i=0; i<ip1.getWidth()-1; i++){
    Roi roi = new Roi(i,i+1,1, ip1.getHeight());
    roiList1.add(roi);
    }

    //Get a line of Y pixel values for the second image for each x position and add them to a list
    ArrayList<Roi> roiList2 = new ArrayList<Roi>();
    for(int i=0; i<ip2.getWidth()-1; i++){
    Roi roi = new Roi(i,i+1,1, ip2.getHeight());
    roiList2.add(roi);
    }

    //Check if these are the same and return the X values for both images that these correspond to

    //You can then crop and combine the pixel values

    return null;
}

}