Phương thức imread() của lớp Imgcodecs chấp nhận giá trị chuỗi đại diện cho tên file. Phương thức này đọc nội dung file chỉ định vào đối tượng matrix và trả về nó. Bằng phương thức này bạn có thể đọc nội dung hình ảnh.
Ngoài ra, lớp Imgcodecs cũng cung cấp biến thể khác của phương thức này chấp nhận giá trị nguyên đại diện cho cờ (flag) chỉ định chế độ đọc mong muốn.
Dưới đây là các trường (fields) của lớp Imgcodecs có thể dùng làm giá trị flag:
IMREAD_COLOR – Nếu flag đặt giá trị này, hình ảnh tải về sẽ được chuyển thành ảnh màu 3 kênh BGR (Xanh dương, Xanh lá, Đỏ).
IMREAD_GRAYSCALE – Nếu flag đặt giá trị này, hình ảnh tải về sẽ được chuyển thành ảnh thang độ xám 1 kênh.
IMREAD_LOAD_GDAL – Nếu flag đặt giá trị này, bạn có thể tải hình ảnh bằng driver GDAL.
IMREAD_ANYCOLOR – Nếu flag đặt giá trị này, hình ảnh được đọc ở bất kỳ định dạng màu nào có thể.
IMREAD_REDUCED_COLOR_2 hoặc,
IMREAD_REDUCED_COLOR_4 hoặc,
IMREAD_REDUCED_COLOR_8 – Nếu flag đặt giá trị này, hình ảnh được đọc như BGR 3 kênh, và kích thước ảnh giảm xuống 1/2, 1/4 hoặc 1/8 so với kích thước gốc tùy theo trường dùng.IMREAD_REDUCED_GRAYSCALE_2 hoặc,
IMREAD_REDUCED_GRAYSCALE_4 hoặc,
IMREAD_REDUCED_GRAYSCALE_8 – Nếu flag đặt giá trị này, hình ảnh được đọc như thang độ xám 1 kênh, và kích thước ảnh giảm xuống 1/2, 1/4 hoặc 1/8 so với kích thước gốc.IMREAD_UNCHANGED – Nếu flag đặt giá trị này, hình ảnh tải về được trả về nguyên trạng.
Do đó, nếu bạn cần đọc hình ảnh màu dưới dạng thang độ xám, bạn nên truyền IMREAD_GRAYSCALE hoặc IMREAD_REDUCED_GRAYSCALE_X làm tham số.
Ví dụ 1
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGreyScale {
public static void main(String args[]) {
// Tải thư viện lõi OpenCV
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// Đọc hình ảnh từ file
Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
// Ghi hình ảnh
Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
System.out.println("Ảnh đã được lưu lại");
}
}
Ảnh đầu vào

Ảnh đầu ra

Ví dụ 2
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadingAsGrey2 {
public static void main(String args[]) {
// Tải thư viện lõi OpenCV
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
String input = "D://images//sunset.jpg";
// Đọc hình ảnh từ file
Mat matrix = Imgcodecs.imread(input, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4);
// Ghi hình ảnh
Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix);
System.out.println("Ảnh đã được lưu lại");
}
}
Ảnh đầu ra
