자바+opencv 3.2.0 의 scharr 필터

opencv 에서 scharr 필 터 는 sobel 연산 자의 연산 에 맞 춰 존재 합 니 다.sobel 커 널 이 3 일 때 결 과 는 비교적 뚜렷 한 오차 가 발생 할 수 있 습 니 다.이 문제 에 대해 Opencv 는 scharr 함 수 를 제공 합 니 다.이 함 수 는 크기 가 3 인 핵 만 을 대상 으로 하고 연산 속 도 는 sobel 함수 만큼 빠 르 며 결 과 는 더욱 정확 하지만 소음 방지 성 은 sobel 함수 보다 못 합 니 다.
scharr 필 터 를 사용 하여 x 나 y 방향의 이미지 차 이 를 계산 합 니 다.매개 변수 변 수 는 sobel 과 같 습 니 다.
함수:Imgproc.Scharr(Mat src,Mat dst,int ddepth,int dx,int dy,double scale,double della,int borderType)
매개 변수 설명:
src:원본 이미지
dst:검사 결과 이미지
ddepth:출력 그림 의 깊이
dx:x 방향의 차분 계수
dy:y 방향의 차분 계수
scale:확대 인자
dela:결 과 는 출력 그림 에 저장 하기 전에 선택 할 수 있 는 dela 값 입 니 다.기본 값 은 0 입 니 다.
borderType:경계 모드,기본 BORDERDEFAULT
예제 코드:

public static void main(String[] args)
  {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    Mat src = Imgcodecs.imread("F:\\2011031213205880528.jpg");

    Mat dst = src.clone();
    Mat dstx = src.clone();
    Mat dsty = src.clone();
    Imgproc.GaussianBlur(src, dst, new Size(3, 3), 0);

    Imgproc.cvtColor(dst, dst, Imgproc.COLOR_RGB2GRAY);

    Imgproc.Scharr(dst, dstx, -1, 1, 0, 1, 0, Core.BORDER_DEFAULT);
    Imgcodecs.imwrite("F:\\dstx.jpg", dstx);

    Imgproc.Scharr(dst, dsty, -1, 0, 1, 1, 0, Core.BORDER_DEFAULT);
    Imgcodecs.imwrite("F:\\dsty.jpg", dsty);

    Core.addWeighted(dstx, 0.5, dsty, 0.5, 0, dst);
    Imgcodecs.imwrite("F:\\dst.jpg", dst);

  }
원본 그림:

X 방향의 scharr:

Y 방향의 scharr:

경사도 병합 후:

 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기