Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chuyển đổi hình ảnh sang thang độ xám không dùng phương thức có sẵn Java OpenCV


Để chuyển đổi hình ảnh màu sang thang độ xám:

  1. Lấy giá trị đỏ, xanh lá, xanh dương của mỗi pixel.
  2. Tính trung bình của 3 màu này.
  3. Thay thế giá trị RGB bằng trung bình.
  4. Tạo giá trị pixel mới từ các màu đã chỉnh sửa.
  5. Gán giá trị mới cho pixel.

Ví dụ

import java.io.File;
import java.io.IOException;
import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class Color2Grey {
public static void main(String args[]) throws IOException {
// Đọc hình ảnh
File file = new File("D:\\Images\\car.jpg");
BufferedImage img = ImageIO.read(file);
for (int y = 0; y < img.getHeight(); y++) {
for (int x = 0; x < img.getWidth(); x++) {
// Lấy giá trị của một pixel
int pixel = img.getRGB(x, y);
// Tạo đối tượng Color từ giá trị pixel
Color color = new Color(pixel, true);
// Lấy giá trị R G B
int red = color.getRed();
int green = color.getGreen();
int blue = color.getBlue();
// Tìm trung bình của đỏ, xanh lá, xanh dương
int average = (red + green + blue) / 3;
// Tạo đối tượng Color mới
color = new Color(average, average, average);
// Gán đối tượng Color mới cho hình ảnh
img.setRGB(x, y, color.getRGB());
}
}
// Lưu hình ảnh đã chỉnh sửa
file = new File("D:\\Images\\grey_image.jpg");
ImageIO.write(img, "jpg", file);
System.out.println("Hoàn tất...");
}
}

Ảnh đầu vào

Chuyển đổi hình ảnh sang thang độ xám không dùng phương thức có sẵn Java OpenCV

Ảnh đầu ra

Chuyển đổi hình ảnh sang thang độ xám không dùng phương thức có sẵn Java OpenCV