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

การอ่านภาพสีเป็นระดับสีเทาโดยใช้ไลบรารี Java OpenCV


imread() วิธีการของ Imgcodecs class ยอมรับค่าสตริงที่แสดงชื่อไฟล์เป็นพารามิเตอร์ เมธอดนี้จะอ่านเนื้อหาของไฟล์ที่ระบุลงในอ็อบเจ็กต์เมทริกซ์และส่งคืน เมื่อใช้วิธีนี้ คุณจะอ่านเนื้อหาในรูปภาพได้

นอกจากนี้ คลาส Imgcodecs ยังมีรูปแบบอื่นของวิธีนี้ ซึ่งยอมรับค่าจำนวนเต็มแทนแฟล็กที่ระบุโหมดการอ่านที่จำเป็น

ต่อไปนี้เป็นฟิลด์ต่างๆ ของ Imgcodecs คลาสที่สามารถใช้เป็นค่าแฟล็กได้

  • IMREAD_COLOR − หากตั้งค่าสถานะเป็นค่านี้ ภาพที่โหลดจะถูกแปลงเป็นภาพสี BGR แบบ 3 ช่อง (สีน้ำเงิน เขียว แดง)

  • IMREAD_GRAYSCALE − หากตั้งค่าสถานะเป็นค่านี้ ภาพที่โหลดจะถูกแปลงเป็นภาพระดับสีเทาช่องทางเดียว

  • IMREAD_LOAD_GDAL − หากตั้งค่าสถานะเป็นค่านี้ คุณสามารถโหลดภาพโดยใช้ไดรเวอร์ GDAL

  • IMREAD_ANYCOLOR − หากตั้งค่าสถานะเป็นค่านี้ รูปภาพจะถูกอ่านในรูปแบบสีใดๆ ที่เป็นไปได้

  • IMREAD_REDUCED_COLOR_2 หรือ
    IMREAD_REDUCED_COLOR_4 หรือ
    IMREAD_REDUCED_COLOR_8
    − หากตั้งค่าสถานะเป็นค่านี้ รูปภาพจะถูกอ่านเป็น BGR สามช่องสัญญาณ และขนาดของรูปภาพจะลดลงเหลือ ½, ¼ หรือ ⅛th ของขนาดดั้งเดิมของรูปภาพตามเขตข้อมูลที่ใช้

  • IMREAD_REDUCED_GRAYSCALE_2 หรือ
    IMREAD_REDUCED_GRAYSCALE_4 หรือ
    IMREAD_REDUCED_GRAYSCALE_8
    − หากตั้งค่าสถานะเป็นค่านี้ รูปภาพจะถูกอ่านเป็นรูปภาพระดับสีเทาแบบช่องสัญญาณเดียว และขนาดของรูปภาพจะลดลงเหลือ ½, ¼ หรือ ⅛th ของขนาดดั้งเดิมของรูปภาพตามเขตข้อมูลที่ใช้

  • IMREAD_UNCHANGED − หากตั้งค่าสถานะเป็นค่านี้ ภาพที่โหลดจะถูกส่งคืนตามที่เป็นอยู่

ดังนั้น หากคุณต้องการอ่านภาพสีเป็นภาพระดับสีเทา คุณควรส่ง IMREAD_GRAYSCALE หรือ IMREAD_REDUCED_GRAYSCALE_X เป็นพารามิเตอร์

ตัวอย่างที่ 1

<ก่อน>นำเข้า org.opencv.core.Core;นำเข้า org.opencv.core.Mat;นำเข้า org.opencv.imgcodecs.Imgcodecs;คลาสสาธารณะ ReadAsGreyScale { โมฆะคงที่สาธารณะหลัก (สตริง args []) {// กำลังโหลด OpenCV ไลบรารีหลัก System.loadLibrary(Core.NATIVE_LIBRARY_NAME); //การอ่านรูปภาพจากไฟล์ Mat matrix =Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE); //การเขียนรูปภาพ Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix); System.out.println("บันทึกภาพอีกครั้ง"); }}

อินพุต

การอ่านภาพสีเป็นระดับสีเทาโดยใช้ไลบรารี Java OpenCV

ผลลัพธ์

การอ่านภาพสีเป็นระดับสีเทาโดยใช้ไลบรารี Java OpenCV

ตัวอย่างที่ 2

นำเข้า org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.imgcodecs.Imgcodecs;คลาสสาธารณะ ReadingAsGrey2 { โมฆะคงที่สาธารณะหลัก (สตริง args []) {// กำลังโหลด OpenCV ไลบรารีหลัก System.loadLibrary(Core.NATIVE_LIBRARY_NAME); อินพุตสตริง ="D://images//sunset.jpg"; //การอ่านรูปภาพจากไฟล์ Mat matrix =Imgcodecs.imread(อินพุต, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4 ); //การเขียนภาพ Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix); System.out.println("บันทึกภาพอีกครั้ง"); }}

ผลลัพธ์

การอ่านภาพสีเป็นระดับสีเทาโดยใช้ไลบรารี Java OpenCV