JavaFX लाइब्रेरी ImageView नामक एक क्लास प्रदान करती है जिसका उपयोग करके आप छवि प्रदर्शित कर सकते हैं। यह क्लास WritableImage क्लास के ऑब्जेक्ट को स्वीकार करती है।
OpenCV Mat ऑब्जेक्ट में संग्रहीत छवि को प्रदर्शित करने के लिए आपको इसे WritableImage ऑब्जेक्ट में परिवर्तित करना होगा और इसे ImageView क्लास में पास करना होगा।
उदाहरण
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.stage.Stage;
import javax.imageio.ImageIO;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;
public class DisplayingImagesJavaFX extends Application {
@Override
public void start(Stage stage) throws IOException {
WritableImage writableImage = loadImage();
// इमेज व्यू सेट करना
ImageView imageView = new ImageView(writableImage);
imageView.setX(50);
imageView.setY(25);
imageView.setFitHeight(400);
imageView.setFitWidth(500);
imageView.setPreserveRatio(true);
// Group ऑब्जेक्ट बनाना
Group root = new Group(imageView);
// Scene ऑब्जेक्ट बनाना
Scene scene = new Scene(root, 600, 400);
// स्टेज में शीर्षक सेट करना
stage.setTitle("Loading an image");
// स्टेज में सीन जोड़ना
stage.setScene(scene);
// स्टेज की सामग्री प्रदर्शित करना
stage.show();
}
public WritableImage loadImage() throws IOException {
// OpenCV कोर लाइब्रेरी लोड करना
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// फ़ाइल से छवि पढ़ना और इसे मैट्रिक्स ऑब्जेक्ट में संग्रहीत करना
String file = "D:\\images\\tree.jpg";
Mat image = Imgcodecs.imread(file);
// छवि एन्कोड करना
MatOfByte matOfByte = new MatOfByte();
Imgcodecs.imencode(".jpg", image, matOfByte);
// एन्कोडेड Mat को बाइट सरणी में संग्रहीत करना
byte[] byteArray = matOfByte.toArray();
// छवि प्रदर्शित करना
InputStream in = new ByteArrayInputStream(byteArray);
BufferedImage bufImage = ImageIO.read(in);
System.out.println("Image Loaded");
WritableImage writableImage = SwingFXUtils.toFXImage(bufImage, null);
return writableImage;
}
public static void main(String args[]) {
launch(args);
}
}
आउटपुट
उपरोक्त प्रोग्राम निष्पादित करने पर निम्नलिखित आउटपुट उत्पन्न होता है -
