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

มีทางเลือกอื่นสำหรับวิธีการ OpenCV imshow() ใน Java หรือไม่?


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

  • ตัวแปรสตริงที่แสดงชื่อของหน้าต่าง

  • วัตถุ Mat ที่แสดงเนื้อหาของรูปภาพ

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

ตัวอย่าง

ตัวอย่างต่อไปนี้จะอ่านรูปภาพ แปลงเป็นรูปภาพระดับสีเทา ตรวจจับขอบในรูปภาพ และแสดงรูปภาพทั้งสาม (ดั้งเดิม มาตราส่วนสีเทา และขอบ) ในหน้าต่างโดยใช้ HighGui

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[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      Mat src = Imgcodecs.imread("D://images//window.jpg");
      HighGui.imshow("Original Image", src);
      //Converting color to gray scale
      Mat gray = new Mat(src.rows(), src.cols(), src.type());
      Imgproc.cvtColor(src, gray, Imgproc.COLOR_RGB2GRAY);
      HighGui.imshow("Gray Scale Image", gray);
      //Applying canny
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      Imgproc.Canny(gray, dst, 100, 100*3);
      HighGui.imshow("Edges", dst);
      HighGui.waitKey();
   }
}

ผลลัพธ์

ในการดำเนินการ โปรแกรมข้างต้นจะสร้างสามหน้าต่างดังแสดงด้านล่าง -

ภาพต้นฉบับ −

มีทางเลือกอื่นสำหรับวิธีการ OpenCV imshow() ใน Java หรือไม่?

ภาพระดับสีเทา -

มีทางเลือกอื่นสำหรับวิธีการ OpenCV imshow() ใน Java หรือไม่?

รูปภาพที่เน้นขอบ -

มีทางเลือกอื่นสำหรับวิธีการ OpenCV imshow() ใน Java หรือไม่?