मैं जावा ओपनसीवी-2.4.4 और स्विंग जीयूआई का उपयोग कर एक एप्लीकेशन विकसित कर रहा हूं। समस्या यह है कि मैं कोई समाधान नहीं ढूंढ पा रहा हूं, जो जावा स्विंग जीयूआई में संसाधित छवि को प्रिंट करने के तरीके को प्रभावी तरीके से दिखाता है (मैट ऑब्जेक्ट में सहेजा गया)। इस पल के लिए मैं इस अनाड़ी समाधान का उपयोग कर रहा:ओपनसीवी जावा - लोड छवि को जीयूआई
javax.swing.JLabel outputImage;
outputImage.setIcon(new javax.swing.ImageIcon("/home/username/Output.png"));
private void sliderStateChanged(javax.swing.event.ChangeEvent evt) {
.
.
Mat canny; // Here is saved what I want to plot
String filename = "/home/username/Output.png";
Highgui.imwrite(filename, canny); // write to disk
outputImage.setIcon(new ImageIcon(ImageIO.read(new File(filename)))); //update Icon
.
.
}
उपयोगकर्ता कुछ मान, आदानों आदि, जीयूआई में मैं डिस्क पर Output.png के ऊपर लिख और डिस्क से नई छवि के साथ JLabel अपडेट करना पड़ता है बदलता है।।
क्या इसके लिए कोई और सुरुचिपूर्ण/कुशल समाधान है? क्या यह मट ऑब्जेक्ट सीधे कैनवास या छवि या स्विंग में छवि के रूप में प्रिंट करने योग्य कुछ भी है?
केवल एक नोट: imencode() फ़ंक्शन में आप ".png" भी सेट कर सकते हैं। यह प्रोग्रामर की ज़रूरतों पर निर्भर करता है, इसलिए मुझे लगता है कि – andriy
जानकारी का कोई नुकसान नहीं है। समस्या यह है कि यह बहुत लंबा लगता है। उपर्युक्त प्रक्रिया सबसे तेज़ संभव है। मेरा मानना है कि केवल मूल स्मृति को इंगित करना तेज होगा। – dannyxyz22
मैंने जो समाधान प्रस्तावित किया है वह जीयूआई को पर्याप्त तेज़ी से लोड करेगा, लेकिन वैसे भी, मैंने आपका जवाब बहुत उपयोगी पाया है। जब मैं ओपनसीवी में और इमेजजे की तुलना में पहली बार प्रोसेसिंग करता हूं और हजारों छवियों के साथ ऐसा करता हूं तो मैं इस तकनीक का उपयोग करता हूं (मफ को बुफर्ड इमेज में बदलता हूं)।और यहां गति वास्तव में मायने रखती है – andriy