Java DIP-이미지 선명도 향상
이 장에서는 가우시안 필터를 사용하여 이미지의 선명도를 높이는 방법을 배웁니다.
먼저 우리는 OpenCV 함수 GaussianBlur. 아래에서 찾을 수 있습니다.Imgproc꾸러미. 구문은 다음과 같습니다.
Imgproc.GaussianBlur(source, destination, new Size(0,0), sigmaX);
매개 변수는 간략하게 설명됩니다.
Sr. 아니. | 매개 변수 및 설명 |
---|---|
1 |
source 소스 이미지입니다. |
2 |
destination 목적지 이미지입니다. |
삼 |
Size 가우스 커널 크기입니다. |
4 |
sigmaX X 방향의 가우스 커널 표준 편차입니다. |
또한, 우리는 OpenCV 함수 addWeighted이미지에 이미지 워터 마크를 적용합니다. 아래에서 찾을 수 있습니다.Core꾸러미. 구문은 다음과 같습니다.
Core.addWeighted(InputArray src1, alpha, src2, beta, gamma, OutputArray dst);
이 함수의 매개 변수는 아래에 설명되어 있습니다.
Sr. 아니. | 매개 변수 및 설명 |
---|---|
1 |
src1 첫 번째 입력 배열입니다. |
2 |
alpha 첫 번째 배열 요소의 가중치입니다. |
삼 |
src2 src1과 동일한 크기 및 채널 번호의 두 번째 입력 배열입니다. |
4 |
Beta 두 번째 배열 요소의 가중치입니다. |
5 |
gamma 각 합계에 추가 된 스칼라입니다. |
6 |
dst 입력 배열과 크기와 채널 수가 동일한 출력 배열입니다. |
GaussianBlur 메서드 외에도 Imgproc 클래스에서 제공하는 다른 메서드가 있습니다. 간단히 설명합니다.
Sr. 아니. | 방법 및 설명 |
---|---|
1 |
cvtColor(Mat src, Mat dst, int code, int dstCn) 한 색상 공간에서 다른 색상 공간으로 이미지를 변환합니다. |
2 |
dilate(Mat src, Mat dst, Mat kernel) 특정 구조 요소를 사용하여 이미지를 확장합니다. |
삼 |
equalizeHist(Mat src, Mat dst) 회색조 이미지의 히스토그램을 동일하게합니다. |
4 |
filter2D(Mat src, Mat dst, int depth, Mat kernel, Point anchor, double delta) 커널과 이미지를 컨볼 루션합니다. |
5 |
GaussianBlur(Mat src, Mat dst, Size ksize, double sigmaX) 가우시안 필터를 사용하여 이미지를 흐리게합니다. |
6 |
integral(Mat src, Mat sum) 이미지의 적분을 계산합니다. |
예
다음 예제는 이미지에 선명 효과를 적용하기 위해 Imgproc 및 Core 클래스를 사용하는 방법을 보여줍니다.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;
public class Main {
public static void main( String[] args ) {
try{
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat source = Highgui.imread("digital_image_processing.jpg",
Highgui.CV_LOAD_IMAGE_COLOR);
Mat destination = new Mat(source.rows(),source.cols(),source.type());
Imgproc.GaussianBlur(source, destination, new Size(0,0), 10);
Core.addWeighted(source, 1.5, destination, -0.5, 0, destination);
Highgui.imwrite("sharp.jpg", destination);
} catch (Exception e) {
}
}
}
산출
주어진 코드를 실행하면 다음 출력이 표시됩니다.