2012-05-20 10 views
14

एक नियमित जावा एप्लिकेशन में, मेरे पास एक BufferedImage है जिसे मैं ImageJ के साथ छेड़छाड़ करना चाहता हूं। मेरे पास एक मैक्रो है जो मुझे निष्पादित करने की ज़रूरत है। मुझे संदेह है कि पहला कदम एक छवि प्लस ऑब्जेक्ट बनाना है, लेकिन मुझे यकीन नहीं है कि जावा के भीतर से ImagePlus ऑब्जेक्ट पर मैक्रो कैसे चलाएं। ImageJ ट्यूटोरियल की धारा 7.3 पाया here का कहना है:मैं अलग जावा एप्लिकेशन के लिए लाइब्रेरी के रूप में ImageJ का उपयोग कैसे कर सकता हूं?

आप अपने आंतरिक छवि प्रारूप के रूप में ImagePlus उपयोग करने के लिए आप भी ImageJ वितरण के साथ ही अन्य सभी ImageJ प्लग इन से सभी प्लग-इन और मैक्रो का उपयोग कर सकते हैं का निर्णय लेते हैं।

लेकिन यह इंगित नहीं करता कि ऐसा कैसे करें। अगर कोई मुझे बताए कि संसाधन के प्रति मुझे कैसे इंगित कर सकता है या इंगित करता है, तो मैं इसकी बहुत सराहना करता हूं।

उत्तर

12

निम्नलिखित साइट का वर्णन करता है उदाहरण के साथ ImageJ एपीआई: http://albert.rierol.net/imagej_programming_tutorials.html#ImageJ प्रोग्रामिंग मूल बातें

उदाहरण पढ़ने छवियों, प्रसंस्करण पिक्सल आदि ठीक है, मुझे लगता है कि आप भी API documentation एक बहुत का उपयोग करने की आवश्यकता होगी शामिल हैं।

+0

यह सही है! 'IJ.run' वही है जो मैं ढूंढ रहा हूं। आपका बहुत बहुत धन्यवाद। – eiowmqui

2

यहां फोटो साझाकरण वेब ऐप के लिए छविजे के साथ एक ओपनसोर्स प्रोजेक्ट कार्यान्वयन है।

एक संदर्भ के रूप का प्रयोग करें अपने आवेदन में apis ImageJ लागू करने के लिए

http://www.gingercart.com/Home/java-snippets/create-image-thumbnail-in-java-using-imagej-api

3

यहाँ एक नमूना कोड एक छवि को खोलता है, यह उलट है और इसे वापस बचाता है जो:

import ij.ImagePlus; 
import ij.io.FileSaver; 
import ij.process.ImageProcessor; 

ImagePlus imgPlus = new ImagePlus("path-to-sample.jpg"); 
ImageProcessor imgProcessor = imgPlus.getProcessor(); 
imgProcessor.invert(); 
FileSaver fs = new FileSaver(imgPlus); 
fs.saveAsJpeg("path-to-inverted.jpg"); 

और यहां एक नमूना कोड है जो दिखाता है कि इसे ग्रेस्केल बनाने के लिए किसी छवि को कैसे छेड़छाड़ करना है:

BufferedImage bufferedImage = imgProcessor.getBufferedImage(); 
for(int y=0;y<bufferedImage.getHeight();y++) 
{ 
    for(int x=0;x<bufferedImage.getWidth();x++) 
    { 
     Color color = new Color(bufferedImage.getRGB(x, y)); 
     int grayLevel = (color.getRed() + color.getGreen() + color.getBlue())/3; 
     int r = grayLevel; 
     int g = grayLevel; 
     int b = grayLevel; 
     int rgb = (r<<16) | (g<<8) | b; 
     bufferedImage.setRGB(x, y, rgb); 
    } 
} 
ImagePlus grayImg = new ImagePlus("gray", bufferedImage); 
fs = new FileSaver(grayImg); 
fs.saveAsJpeg("path-to-gray.jpg"); 

मुझे उम्मीद है कि यह आपको शुरू करने में मदद करेगा :)

+0

क्या यह पीएनजी के लिए भी लागू होगा? या अन्य छवि प्रारूप? – bpunzalan