2013-03-19 5 views
1

그레이 스케일 그림이 있으며 흑백으로 만 변환합니다. 그러나이를 위해서는 올바른 임계 값을 계산해야하며이 임계 값을 그림의 평균 밝기와 같게하고 싶습니다.opencv로 그레이 스케일 그림의 평균 밝기를 계산하십시오.

그래서 OpenCV로 어떻게 임계 값을 계산할 수 있는지 궁금합니다. 쉽게 프레임 워크에 존재하는 메소드가 있습니까?

모든 픽셀에 밝기 값 (0에서 255까지)을 모두 추가하고 픽셀 수로 나누기를 원하지만 그 데이터에 액세스하는 방법은 매우 느립니다 (.at , j) [k] (rgb 그림의 경우). 하지만 내 그림은 회색조로되어있어 매우 빠르다. 그래서 아이폰에서 실행할 수있다.

답변

3

이러한 통계를 계산하려면 cv::sum() 또는 더 나은 cv::mean()을 사용하십시오. cv::adaptiveThreshold()

은 또한 당신이 오츠의 방법을 확인 THRESH_OTSU 옵션을 cv::threshold()을 볼 수 :

그러나, OpenCV의 이미 당신을 위해하고 싶은 모든 것을 수행하는 임계 기능을 가지고 있습니다.

+1

마지막으로, 내 방법은 그림의 나쁜 퀄리티 때문에 제대로 작동하지 않습니다. 따라서 "sum"과 "mean"이 원할 경우에도 cv :: adaptiveThreshold()를 사용합니다. . – Tiffado

-1

이미지의 1 %를 덮을 때까지 모든 이미지 포인트 대신 임의의 포인트를 샘플링하여 몬테카를로 알고리즘을 사용할 수 있습니다. 결과는 실제 값과 매우 유사해야합니다.