android – 如何合并图像并强加于彼此

前端之家收集整理的这篇文章主要介绍了android – 如何合并图像并强加于彼此前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我在一些Framelayout中上传两张或两张以上的照片.在这里,我正在三个不同的位置在同一个人的三张照片上传三张照片.那么什么图像处理库在 Android或Java或Native中可用来执行某些操作,如图所示.

我想强加多张照片.

这些东西:

一个想法是:

>在所有这些图片中进行一些分层,并在图片中找到不匹配的区域并合并它们.

如何将多张图片与其他图片合并?通过检查相似性并相互合并?

有没有任何第三方Api或一些Photoshop服务,可以帮助我做这些有形图像处理?

解决方法

在这种情况下,您不仅仅是要组合图像.你真的想在不同的位置组合一个包含相同对象的场景.

因此,输出图像中的给定像素的颜色是每个图像中该像素的值之和除以图像数量的总和,不仅仅是一个简单的组合或alpha复合.

在这种情况下,您可以:

>确定场景背景,分析考虑多个图像时不改变的像素.
>从输出图像开始只是背景.
>对于每个图像,删除背景以获得所需的对象并将其与输出图像组合.

有一个Marvin插件来执行这个任务,叫做MergePhoto.下面的程序使用这个插件来组合一套跑酷照片.

import marvin.image.MarvinImage;
import marvin.io.MarvinImageIO;
import marvin.plugin.MarvinImagePlugin;
import marvin.util.MarvinPluginLoader;

public class MergePhotosApp {

public MergePhotosApp(){

    // 1. load images 01.jpg,02.jpg,...,05.jpg into a List
    List<MarvinImage> images = new ArrayList<MarvinImage>();
    for(int i=1; i<=5; i++){
        images.add(MarvinImageIO.loadImage("./res/0"+i+".jpg"));
    }

    // 2. Load plug-in and process the image
    MarvinImagePlugin merge = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.combine.mergePhotos");
    merge.setAttribute("threshold",38);

    // 3. Process the image list and save the output
    MarvinImage output = images.get(0).clone();
    merge.process(images,output);
    MarvinImageIO.saveImage(output,"./res/merge_output.jpg");
}

public static void main(String[] args) {
    new MergePhotosApp();
}
}

输入图像和输出图像如下所示.

猜你在找的Android相关文章