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

การอธิบายคลาส Mat ในไลบรารี Java OpenCV


ใน OpenCV ภาพถูกเก็บไว้โดยใช้ออบเจ็กต์ Mat มันคืออาร์เรย์ n-มิติ และใช้เก็บข้อมูลภาพของภาพเกรสเกลหรือสี ปริมาตรวอกเซล (voxel volumes) สนามเวกเตอร์ (vector fields) จุดเมฆ (point clouds) เทนเซอร์ (tensors) สถิติ (histograms) ฯลฯ

หากคุณลองอ่านภาพโดยใช้ไลบรารี OpenCV มันจะถูกอ่านเข้าไปในออบเจ็กต์ Mat

Mat matrix = Imgcodecs.imread(filePath);

คุณสามารถสร้างอินสแตนซ์ของคลาสนี้ด้วยตนเองได้โดยใช้คอนสตรัคเตอร์ใดคอนสตรัคเตอร์หนึ่งต่อไปนี้:

  • Mat() - คอนสตรัคเตอร์ไม่มีอาร์กิวเมนต์ ใช้สร้างเมทริกซ์ว่างและส่งให้เมธอด OpenCV อื่นๆ

  • Mat(int rows, int cols, int type) - คอนสตรัคเตอร์นี้รับพารามิเตอร์ 3 ตัวแบบจำนวนเต็ม แทนจำนวนแถวและคอลัมน์ในอาร์เรย์ 2D และประเภทของอาร์เรย์ (ที่ใช้เก็บข้อมูล)

  • Mat(int rows, int cols, int type, Scalar s) - รวมพารามิเตอร์ของตัวก่อนหน้า และเพิ่มรับออบเจ็กต์ของคลาส Scalar เป็นพารามิเตอร์

  • Mat(Size size, int type) - คอนสตรัคเตอร์นี้รับพารามิเตอร์ 2 ตัว ออบเจ็กต์แทนขนาดของเมทริกซ์ และจำนวนเต็มแทนประเภทของอาร์เรย์ที่ใช้เก็บข้อมูล

  • Mat(Size size, int type, Scalar s) - รวมพารามิเตอร์ของตัวก่อนหน้า และเพิ่มรับออบเจ็กต์ของคลาส Scalar เป็นพารามิเตอร์

เมธอดสำคัญของคลาสนี้มีดังนี้:

  • Mat col(int x) - เมธอดนี้รับพารามิเตอร์จำนวนเต็มแทนดัชนีของคอลัมน์ และดึงคืนคอลัมน์นั้น

  • Mat row(int y) - เมธอดนี้รับพารามิเตอร์จำนวนเต็มแทนดัชนีของแถว และดึงคืนแถวนั้น

  • int cols() - เมธอดนี้คืนค่าจำนวนคอลัมน์ในเมทริกซ์

  • int rows() - เมธอดนี้คืนค่าจำนวนแถวในเมทริกซ์

  • Mat setTo(Mat value) - เมธอดนี้รับออบเจ็กต์ประเภท Mat และตั้งค่าองค์ประกอบของอาร์เรย์เป็นค่าที่ระบุ

  • Mat setTo(Scalar s) - เมธอดนี้รับออบเจ็กต์ประเภท Scalar และตั้งค่าองค์ประกอบของอาร์เรย์เป็นค่าที่ระบุ