我有2张图片如下:
我想自动组合它们,希望它可以用 Java 完成
由于两个图像有重叠并且不知道哪个是正确的边缘来组合,如何检测像素位置和正确的边缘来组合两个图像?可以提供任何算法吗?
我有2张图片如下:
我想自动组合它们,希望它可以用 Java 完成
由于两个图像有重叠并且不知道哪个是正确的边缘来组合,如何检测像素位置和正确的边缘来组合两个图像?可以提供任何算法吗?
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;
}
}