2013-12-18 4 views
0

나는 안드로이드에서 이미지 처리 프로세스를 위해 opencv 라이브러리를 사용하고 있습니다. 문제는 이미지에 canny 함수를 사용할 때입니다.안드로이드 : opencv를 사용하여 canny edge detection을위한 좋은 고저 임계 값을 얻는 방법

Imgproc.Canny(ImageMat, ImageMat, 0.4, 0.5); 

내가 낮은 임계 값 0.4 및 높은 임계 값 0.5을 사용하지만 이미지의 결과가 좋지 않다 : 이것은 영리한 사용하여 내 코드입니다. 나는 좋은 결과를 얻기 위해 낮은 임계 값과 높은 임계 값을 변경해야한다는 것을 알고 있지만 이것은 다른 이미지에 대해서도 다른 임계 값이어야합니다. 그 똑똑한 프로세스에 대한 동적 임계 값을 얻는 방법 ?? 내 프로젝트는 안드로이드에서 리프 인식입니다. 나쁜 영어로 죄송합니다.

+0

가능한 [opencv에서 Canny 연산에 대한 낮은 임계 값 및 높은 임계 값 자동 계산] (http://stackoverflow.com/questions/4292249/automatic-calculation-of-low-and-high-thresholds-for- the-canny-operation-in-open) –

답변

1

필자가 아는 한 상대적으로 자동으로 thresholding하는 방법은 Otsu 일 수 있습니다. 시도를 thresholding하는 대신 채널 선택 및 강도 매핑 (일반적으로 비선형)에 더 많은 노력을 기울일 수 있습니다. 이 작업을 수행하는 목적은 오브젝트와 배경 간의 차이를 최대화하여 임계 값을보다 쉽고 강력하게 만드는 것입니다. 이러한 목적을 달성하기 위해서는 잎 이미지 데이터베이스를 확인하고 잎과 배경의 강도 범위에 대한 대략적인 아이디어를 얻어야합니다.