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

วิธีปรับความคมชัดของภาพด้วย Java OpenCV

การเพิ่มความคมชัด (Sharpening) ทำได้โดยการเบลอภาพด้วย Gaussian filter แล้วใช้ Core.addWeighted() รวมภาพต้นฉบับกับภาพที่เบลอ

ตัวอย่างโค้ด

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class AlteringSharpness {
    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        String file = "D:\\Image\\lamma1.jpg";
        Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR);
        Mat dest = new Mat(src.rows(), src.cols(), src.type());
        
        // เบลอภาพด้วย Gaussian Blur
        Imgproc.GaussianBlur(src, dest, new Size(0,0), 10);
        
        // รวมภาพ: src * 1.5 + dest * (-0.5) = sharpened
        Core.addWeighted(src, 1.5, dest, -0.5, 0, dest);
        
        Imgcodecs.imwrite("D:\\Image\\sharpness_result.jpg", dest);
    }
}

ภาพอินพุตและเอาต์พุต

ภาพต้นฉบับจะกลายเป็นภาพที่คมชัดขึ้นหลังจากผ่านการประมวลผล