2012-07-03 4 views
0

사용자에게 효과적으로 페인트 할 수있는 응용 프로그램을 개발 중입니다. 나는 MATLAB 스크립트를 실행하고 참조 이미지의 흑백 이미지를 검출 한 C# 코드를 가지고있다. 이제는 사용자가 이미지 위에 페인트 할 수있는 코드를 개발했습니다. 내 임무는이 이미지 위에 페인트 칠하도록 사용자를 안내하는 것입니다. 본질적으로, 사용자가 페인팅 할 때, 나의 임무는 검은 색과 흰 색 가장자리가 검출 된 이미지 위에있는 그림이 가장자리를 교차하지 않는 것을 보는 것입니다. 페인트 스트로크가 가장자리를 넘었을 때 그 가장자리에서 잘려야한다는 것을 알아낼 수 있어야합니다.C# 페인트 안쪽 가장자리 이미지

가장자리의 정보를 저장하고 사용자가 가장자리에 부딪혔는지 확인하는 방법을 알고 싶습니다. 누군가가 이와 관련한 몇 가지 지침을 제공 할 수 있다면 정말 도움이 될 것입니다.

감사

편집 : I는 하나 개의 참조 이미지를 업로드 및 에지 화상을 검출. 페인팅은 가장자리 감지 이미지에서 수행됩니다. 그것은 각 에지 라인의 페어의 생성에 있기 때문에 무언가가 당신의 에지 검출기에 이상이 같은

enter image description here

+0

가장자리로 무엇을 의미하는지 확신하기가 어렵습니다. 가장자리 "선"은 이미지에 정의되어 있습니까? 아니면 이미지 가장자리 (이미지 경계선과 같이)입니까? 또한 수신하는 에지 데이터의 샘플뿐만 아니라 이미지가 도움이 될 수 있습니다. – Trisped

+0

안녕하세요, 가장자리는 이미지에 정의 된 선입니다. Sobel, Prewitt 등의 연산자로 결정되는 가장자리와 같습니다. 질문을 업데이트하고 이미지를 추가합니다. – Bharath

답변

3

보인다.

목표 check if the user has hit an edge은 절대적인 결정 (EDGE 또는 NO EDGE)이 필요하다는 것을 의미합니다. 그러나 Sobel과 같은 가장자리 감지 연산자는 [0, 255] 범위의 각 픽셀에 대해 "가장자리"값을 제공합니다. 따라서이 절대적인 결정을 내리기 위해서는 더 많은 처리가 필요합니다.

단순히 소벨 출력을 thresholding하면 노이즈가 발생하기 쉽습니다. 예를 들어, 날카로운 모서리 앞에 초점이 맞지 않는 작은 오브젝트가 있으면 그 지점에서 가장자리가 매우 약해질 수 있습니다.

캐니 에지 탐지기를 살펴보십시오. 히스테리시스 단계는 약점이있는 가장자리를 연결하는 데 도움이됩니다. 출력은 이진 이미지 가장자리 또는 가장자리 없음입니다.

일단 가장자리 이미지가 있으면 이미지를 분리 된 전경 요소 집합으로 분리하여 배경을 채울 수 있습니다. 그런 다음 Region labeling algorithm을 사용하여 각 전경 요소에 고유 한 레이블을 지정하십시오. 사용자가 페인팅을 시작하면 내부에있는 영역을 기록한 다음 해당 영역으로 페인팅을 제한합니다.

이 프로세스는 가장자리가 감지 된 이미지의 품질에 크게 좌우됩니다. Canny 탐지기가 가장자리가있는 영역을 완전히 둘러싸 지 못하면 대단히 실패합니다.

+0

답장을 보내 주셔서 감사합니다. 중단 된 가장자리 이미지를 연속 이미지로 변환 할 수있는 방법을 찾으려고합니다. 튜토리얼이나 샘플 코드가 있으면 알려주세요. 고맙습니다. – Bharath

관련 문제