1

밝기가 어둡거나 어두워지는 이미지의 가장자리가 특히 밝아집니다. 이것이 가능한가? OpenCV에서 Canny/Sobel 엣지 디텍터를 사용하고 있지만 강도가 증가하는 가장자리를 잡아 내고 있습니다. 원하지 않는 부분이 있습니다.밝기 계산 에지가 줄어 듭니다.

+0

sobel 필터를 x 방향으로 시도해 볼 수 있습니다. http://objects.opencv.org/doc/tutorials에서'Sobel (src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT); /imgproc/imgtrans/sobel_derivatives/sobel_derivatives.html – Micka

+0

[최소 작업 예제] (http://sscce.org/)를 포함하면 위대 할 것입니다. 그리고 어쩌면 당신은 계속 진행되고있는 것을 보여주는 하나의 예제 이미지를 포함 할 수 있습니다. – Unapiedra

답변

0

사용자 정의 필터를 작성하고 cvFilter2D (2D 컨벌루션)를 사용할 수 있습니다.

아주 간단한 예를 들면, 컨볼 루션 커널 {1 0 -1; 1 0 -1; 1 0 -1}은 왼쪽에서 오른쪽으로가는 강도 감소를 강조 표시 할 수있는 3x3 필터입니다. 결과를 임계 값으로 설정하여 가장자리를 얻을 수 있습니다.

이미지에 맞게 올바른 크기의 커널과 적절한 값을 선택해야합니다. 당신이이 필터는 수학적으로 무엇을 이해하면

0

, 그것은 무엇을 아주 명확하고 변경해야 :

Here는 cvFilter2d을 사용하는 방법을 보여줍니다 좋은 링크입니다. 그리고 파이프 라인에서 이것이 있어야합니다. 그의 대답에서 Totoro는 이미 자신의 필터를 통과시켜 실행할 수 있다고 지적했습니다.

소벨 가장자리 감지는 이미지에서 두 개의 필터를 먼저 실행하여 작동합니다. 이 필터는 X 및 Y 방향으로 이미지의 그래디언트를 제공합니다. 가장자리와 그라디언트는 그라디언트의 큰 크기가 이미지에 많은 변화가 있음을 의미하는 방식으로 연결되어 가장자리를 나타냅니다!

따라서 Sobel 알고리즘의 다음 단계 (iirc)는 그래디언트의 크기를 찾는 것입니다. 마지막으로 이미지의 큰 부분 만 가장자리로 잡으려고 임계 값을 설정합니다. 마지막으로 가장자리의 방향을 따라 약간의 가장자리 숱이 나 히스테리시스 임계 값을 지정하지만 여기서는 그다지 중요하지 않습니다.

소벨 알고리즘과 다른 곳에서 중요한 단계는 방향을 신경 쓰는 것입니다. X와 Y 그라디언트에서 사인과 코사인을 사용하여 변경 방향을 계산하면 원하는 방향으로 만 이동하는 가장자리를 필터링 할 수 있습니다.

수직 변경에만 신경 쓰면 수평선을 따라 그라디언트를 계산하고 양수 값만 취하는 컨볼 루션 커널을 실행할 수 있습니다. 모든 양수 값은 밝음에서 어두움까지 수직적 변화가 있음을 나타냅니다. 원하는 경우 소벨이하는 것처럼 다음 처리 단계를 수행 할 수 있습니다.

관련 문제