การเพิ่มความคมชัด (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);
}
}
ภาพอินพุตและเอาต์พุต
ภาพต้นฉบับจะกลายเป็นภาพที่คมชัดขึ้นหลังจากผ่านการประมวลผล