Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

มีทางเลือกแทน OpenCV imshow() ใน Java หรือไม่

คลาส HighGui ในแพ็กเกจ org.opencv.highgui ช่วยให้คุณสร้างและจัดการหน้าต่างและแสดงผลได้ คุณสามารถแสดงภาพในหน้าต่างได้โดยใช้เมธอด imshow() ของคลาสนี้ ซึ่งรับพารามิเตอร์ 2 ตัว:

  • ตัวแปร string แทนชื่อหน้าต่าง
  • อ็อบเจ็กต์ Mat แทนเนื้อหาภาพ

แนะนำให้เรียกเมธอด waitKey() หลัง imshow()

ตัวอย่างโค้ด

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class ImshowExample {
    public static void main(String[] args) {
        // โหลด OpenCV core library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // อ่านภาพจากไฟล์
        Mat src = Imgcodecs.imread("D://images//window.jpg");
        HighGui.imshow("Original Image", src);
        
        // แปลงสีเป็น grayscale
        Mat gray = new Mat(src.rows(), src.cols(), src.type());
        Imgproc.cvtColor(src, gray, Imgproc.COLOR_RGB2GRAY);
        HighGui.imshow("Gray Scale Image", gray);
        
        // ใช้ Canny
        Mat dst = new Mat(src.rows(), src.cols(), src.type());
        Imgproc.Canny(gray, dst, 100, 100*3);
        HighGui.imshow("Edges", dst);
        HighGui.waitKey();
    }
}

ผลลัพธ์

เมื่อรันโปรแกรมจะได้หน้าต่าง 3 หน้าต่างดังนี้:

Original image

มีทางเลือกแทน OpenCV imshow() ใน Java หรือไม่

Grayscale image

มีทางเลือกแทน OpenCV imshow() ใน Java หรือไม่

Image with edges highlighted

มีทางเลือกแทน OpenCV imshow() ใน Java หรือไม่