2013-08-18 10 views
10

मान लीजिए कि मैं कुछ Framelayout में दो या दो से अधिक चित्र अपलोड कर रहा हूं। इस प्रकार मैं उन सभी तीन चित्रों में तीन अलग-अलग स्थिति में एक ही व्यक्ति के साथ तीन चित्र अपलोड कर रहा हूं। फिर तस्वीर में दिखाए गए कुछ करने के लिए एंड्रॉइड या जावा या नेटिव में कौन सी छवि प्रसंस्करण पुस्तकालय उपलब्ध हैं।छवियों को मर्ज कैसे करें और एक दूसरे पर लगाएं

मैं एक दूसरे पर कई चित्र लगा देना चाहता हूं।

कुछ इस तरह: -

Picture with layering facility

एक विचार है करने के लिए:

  1. उन सभी चित्रों में कुछ लेयरिंग करो और तस्वीरें में mismatching क्षेत्रों का पता लगाने और उन्हें मर्ज।

कोई अन्य चित्र के साथ एकाधिक चित्र कैसे विलय कर सकता है? डी-समानता की जांच करके और एक दूसरे के साथ विलय करके?

क्या कोई तीसरी पार्टी एपी या कुछ फ़ोटोशॉप सेवा है जो मुझे इस तरह की छवि प्रसंस्करण करने में मदद कर सकती है?

+1

क्या आपने ओपनसीवी की कोशिश की है। [उदा।] के लिए (http://stackoverflow.com/questions/11155333/opencv-merging-two-images-using-opencv) –

+0

अन्य छवियों में केवल लड़का, या पृष्ठभूमि भी शामिल है? अगर यह सिर्फ लड़का है, तो बिना किसी विशेष एपीआई के करना आसान है। यदि नहीं, तो आपको कुछ विशेष की आवश्यकता होगी ... –

+0

@androiddeveloper: अन्य छवियों में भी एक ही पृष्ठभूमि शामिल है। मुझे चित्रों के बीच अंतर खोजने और उन्हें मर्ज करने की आवश्यकता है। –

उत्तर

0

मैं अगर यह "मूल निवासी" की अपनी परिभाषा में होने की अर्हता प्राप्त करेंगे पता नहीं है, लेकिन वहाँ निम्नलिखित नेट पुस्तकालय है कि मदद कर सकता है है: http://dynamicimage.apphb.com/

पुस्तकालय में ही दे सकते हैं, तो आप चाहते हैं आप चाहते हैं, फिर अपने आर्किटेक्चर के आधार पर आप सर्वर पर छवि मैनिपुलेशन करने के लिए एक छोटी एएसपी.NET साइट सेट कर सकते हैं।

0

स्वीकृत उत्तर here देखें।

ऊपर के लिंक में वहाँ जो openCV एसडीके द्वारा किया जाता है दो छवियों के विलय है।

आप openCV उपयोग करने के लिए और सिर्फ अपने स्वयं के साथ प्रयास करने के लिए तो आप framlayout साथ और तीन imageView के साथ थोड़ा खेलने के लिए होगा चाहते हैं चाहते हैं तो। सभी तीन छवियों को दिखाने के लिए छवि के विशिष्ट भाग का चयन करने के लिए उपयोगकर्ता को विकल्प दें। तो चयनित भाग चयनित छवि का दिखाया जाएगा। इस तरह से आप जो परिणाम कह चुके हैं उससे ऊपर परिणाम प्राप्त करेंगे।

आशा है कि आपको मेरा अंक मिल जाएगा। यदि नहीं तो मुझे बताएं।

कोडिंग का आनंद लें ... :)

0

आप OpenCV और here या here

// Read the main background image 
cv::Mat image= cv::imread("Background.png"); 
// Read the mans character image to be placed 
cv::Mat character= cv::imread("character.png"); 
// define where you want to place the image 
cv::Mat newImage; 
//The 10,10 are the initial coordinates in pixels 
newImage= image(cv::Rect(10,10,character.cols,character.rows)); 
// add it to the background, The 1 is the aplha values 
cv::addWeighted(newImage,1,character,1,0,newImage); 
// show result 
cv::namedWindow("with character"); 
cv::imshow("with character",image); 
//Write Image 
cv::imwrite("output.png", newImage); 

पर जांच कर सकते हैं या आप एक watermark effect

के रूप में यह बना सकते हैं openCV का उपयोग कर सकते हैं ओवरले छवियों या फिर आप इस सीएल का उपयोग कर की तरह merging two images

कोशिश जावा में यह कोशिश कर सकते हैं गधा

public class MergeImages { 

public static void main(String[] args) { 
    File inner = new File("Inner.png"); 
    File outter = new File("Outter.png"); 

    try { 

     BufferedImage biInner = ImageIO.read(inner); 
     BufferedImage biOutter = ImageIO.read(outter); 

     System.out.println(biInner); 
     System.out.println(biOutter); 

     Graphics2D g = biOutter.createGraphics(); 
     g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f)); 
     int x = (biOutter.getWidth() - biInner.getWidth())/2; 
     int y = (biOutter.getHeight() - biInner.getHeight())/2; 
     System.out.println(x + "x" + y); 
     g.drawImage(biInner, x, y, null); 
     g.dispose(); 

     ImageIO.write(biOutter, "PNG", new File("Outter.png")); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
} 
6

इस मामले में आप छवियों को गठबंधन करने की कोशिश नहीं कर रहे हैं। आप वास्तव में एक ही वस्तु वाले एक दृश्य को अलग-अलग स्थितियों में जोड़ना चाहते हैं।

इसलिए, यह केवल एक साधारण संयोजन या अल्फा कंपोजिट नहीं है, जहां आउटपुट छवि में दिए गए पिक्सेल का रंग छवियों की संख्या से विभाजित प्रत्येक छवि में इस पिक्सेल के मान का योग है।

इस मामले में, आप कर सकते हैं:

  1. पिक्सल है कि एक से अधिक चित्रों पर विचार नहीं बदलते हैं, का विश्लेषण करने के दृश्य पृष्ठभूमि निर्धारित करें।
  2. आउटपुट छवि केवल पृष्ठभूमि होने के साथ शुरू करें।
  3. प्रत्येक छवि के लिए, इच्छित वस्तु प्राप्त करने के लिए पृष्ठभूमि को हटाएं और इसे आउटपुट छवि के साथ संयोजित करें।

इस कार्य को करने के लिए 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(); 
} 
} 

इनपुट छवियां और आउटपुट छवि नीचे दिखाए गए हैं।

enter image description here

+0

लेमे इसे आपके मार्गदर्शन के अनुसार आज़माएं। जिस तरह से आप समस्या और महत्वपूर्ण प्रतिक्रिया को समझते हैं वह वास्तव में किरण की आशा है। –

+0

यदि आपको उदाहरण चलाने या ढांचे को कॉन्फ़िगर करने में कोई समस्या है, तो [चर्चा समूह] (https://groups.google.com/forum/#!forum/marvin-project) पर एक संदेश पोस्ट करें। –

+0

मैंने आपके समाधान को बिल्कुल फ़ोटो के साथ करने की कोशिश की जिसमें एकल व्यक्ति कुर्सी पर बैठा है और दूसरे में वह खड़ा है। लेकिन परिणाम छवि धुंधली थी और यह सिर्फ व्यक्ति के बजाय स्थायी व्यक्ति की दयालु छाया दिखा रहा था। क्या हमें छवियों या किसी और चीज का प्रीप्रोकैसिंग करने की ज़रूरत है .. इसे उपरोक्त चित्रों में दिखाए गए अनुसार काम करने के लिए ...? – Kailas

संबंधित मुद्दे