0

我有2张图片如下:

图片第 1 部分

图像第 2 部分

我想自动组合它们,希望它可以用 Java 完成

组合图像

由于两个图像有重叠并且不知道哪个是正确的边缘来组合,如何检测像素位置和正确的边缘来组合两个图像?可以提供任何算法吗?

4

1 回答 1

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;
}

}
于 2013-08-07T09:24:39.903 回答