यदि आप OpenCV का उपयोग करके किसी छवि को पढ़ने का प्रयास करते हैं imread() विधि यह एक मैट ऑब्जेक्ट देता है। यदि आप परिणामी मैट ऑब्जेक्ट की सामग्री को एडब्ल्यूटी/स्विंग्स विंडो का उपयोग करके प्रदर्शित करना चाहते हैं तो आपको मैट ऑब्जेक्ट को java.awt.image.BufferedImage वर्ग के ऑब्जेक्ट में कनवर्ट करने की आवश्यकता है। ऐसा करने के लिए, आपको नीचे दिए गए चरणों का पालन करना होगा -
-
मैट को MatOfByte में एन्कोड करें - सबसे पहले, आपको मैट्रिक्स को बाइट के मैट्रिक्स में बदलना होगा। आप इसे Imgcodecs वर्ग की imencode() विधि का उपयोग करके कर सकते हैं।
यह विधि एक स्ट्रिंग पैरामीटर (छवि प्रारूप निर्दिष्ट करना), एक मैट ऑब्जेक्ट (छवि का प्रतिनिधित्व करने वाला), एक MatOfByte ऑब्जेक्ट स्वीकार करती है।
-
MatOfByte ऑब्जेक्ट को बाइट ऐरे में बदलें - toArray() विधि का उपयोग करके MatOfByte ऑब्जेक्ट को बाइट सरणी में बदलें।
-
बाइटएरेइनपुटस्ट्रीम को तुरंत चालू करें - इसके एक कंस्ट्रक्टर को पिछले चरण में बनाए गए बाइट सरणी को पास करके ByteArrayInputStream क्लास को इंस्टेंट करें।
-
BufferedImage ऑब्जेक्ट बनाना - ImageIO क्लास के रीड () मेथड में पिछले स्टेप में बनाए गए इनपुट स्ट्रीम ऑब्जेक्ट को पास करें। यह एक BufferedImage ऑब्जेक्ट लौटाएगा।
उदाहरण
आयात करें org.opencv.core.Mat;import org.opencv.core.MatOfByte;import org.opencv.imgcodecs.Imgcodecs;सार्वजनिक वर्ग Mat2BufferedImage {सार्वजनिक स्थैतिक BufferedImage Mat2BufferedImage(Mat mat) IOException फेंकता है {// छवि को एन्कोडिंग MatOfByte matOfByte =new मैटऑफबाइट (); Imgcodecs.imencode(.jpg", mat, matOfByte); // एन्कोडेड मैट को एक बाइट सरणी में संग्रहीत करना बाइट [] बाइटअरे =matOfByte.toArray (); // बफ़र्ड इमेज इनपुटस्ट्रीम तैयार करना =new ByteArrayInputStream(byteArray); BufferedImage bufImage =ImageIO.read (इन); बफ इमेज लौटाएं; } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) अपवाद फेंकता है {// OpenCV कोर पुस्तकालय लोड हो रहा है System.loadLibrary (Core.NATIVE_LIBRARY_NAME); // फ़ाइल से छवि पढ़ना स्ट्रिंग फ़ाइल ="C:/EXAMPLES/OpenCV/sample.jpg"; चटाई छवि =Imgcodecs.imread (फ़ाइल); BufferedImage obj =Mat2BufferedImage (छवि); System.out.println (obj); }}आउटपुट
BufferedImage@579bb367:type =5 ColorModel:#pixelBits =24 numComponents =3color space =java.awt.color.ICC_ColorSpace@1de0aca6 पारदर्शिता =1 में अल्फा =झूठा isAlphaPre =false ByteInterleavedRaster:चौड़ाई =500 ऊंचाई =360#numDataElements 3 डेटाऑफ़[0] =2