문제

다음과 같은 효과를 프로그래밍 방식으로 재현 할 수있는 방법을 찾고 있습니다.

입력 이미지 제공 :
입력 http://www.shiny.co.il/shooshx/conecarv/q_input.png

"스트로크"효과를 반복적으로 적용하고 싶습니다.
첫 번째 단계는 다음과 같습니다.
1 단계 http://www.shiny.co.il/shooshx/conecarv/q_step1.png

다음과 같은 두 번째 단계 :
Alt Text http://www.shiny.co.il/shooshx/conecarv/q_step2.png

등등.

나는 이것이 일종의 에지 감지를 포함하고 어떻게 든 에지를 추적 할 것이라고 가정합니다.
효율적이고 강력한 방식으로이를 수행 할 알려진 알고리즘이 있습니까?

도움이 되었습니까?

해결책

기본적으로 사용자 정의 알고리즘은 이 스레드:

3x3 인근을 픽셀 주위로 가져 가서 알파 채널을 임계 한 다음 픽셀 주변의 8 픽셀 중 하나가 다른 알파 값을 가지고 있는지 확인하십시오. 그렇다면 주어진 반경의 원을 픽셀 중심으로 페인트하십시오. 내부/외부를하려면 임계 값 알파 채널로 변조합니다 (다른 쪽을 부정). 원 반경이 픽셀보다 큰 경우 더 큰 동네를 임계해야합니다 (아마도).


이것은 회색 규모의 형태 학적 작업을 사용하여 구현됩니다. 이것은 또한 선택을 확장/계약에 사용하는 데 사용되는 것과 동일한 기술입니다. 기본적으로, 선택 (또는 알파 채널)의 중심을 스트로크하려면 먼저 선택의 두 개의 별도 사본을 만드는 것입니다. 첫 번째 선택은 스트로크의 반경에 의해 확장되는 반면, 두 번째 선택은 수축됩니다. 그런 다음 뇌졸중의 불투명도는 첫 번째 선택에서 두 번째 선택을 빼서 얻습니다.

내부 및 외부 스트로크를하려면 반경의 두 배로 수축/확장하고 원래 선택과 교차하는 부품을 빼게됩니다.

가장 일반적인 형태 학적 알고리즘에는 O (m*n) 연산이 필요하며 여기서 m은 이미지의 픽셀 수이고 n은 "구조 요소"의 요소 수입니다. 그러나 특정 특수한 경우, 이것은 O (m) 작업 (예 : 구조 요소가 사각형 또는 다이아몬드 인 경우)에 최적화 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top