2011-09-29 2 views
3

저는 OpenCV의 새로운 사용자입니다. SVN 저장소에서 버전 2.3.2를 사용하고 있습니다. 필자는 구체적인 3 차원 cv::Mat 구조가 288 x 384 x 10입니다. 이것은 288 x 384 이미지를 나타내고 다른 10 개 채널은 불일치 값을 나타냅니다. 최소 요소와 그 위치를 찾고 싶습니다. OpenCV에는 minMaxElem 함수가 있으며 다차원 배열에서는 작동하지 않습니다. 어떻게 OpenCV에서이 기능을 수행하기 위해 채널 분할 기능을 사용할 수 있습니까?OpenCV : 특정 차원에서 최소 요소를 찾으려면 어떻게해야합니까?

답변

3

당신은 다차원 배열에 최소/최대 값을 찾기 위해 minMaxIdx 기능을 사용할 수 있습니다

void minMaxIdx(InputArray src, double* minVal, double* maxVal, 
         int* minIdx=0, int* maxIdx=0, InputArray mask=noArray()); 

0이 아닌 minIdxmaxIdx 충분한 길이가 3에 대한 (모든 차원에 대한 3 인덱스를 저장하는 데 배열을 가리켜 야합니다 3 차원 매트).
minValmaxVal은 단일 최소값/최대 값을 반환하는 데 사용됩니다. 값이 필요하지 않으면 0이 될 수 있습니다.

+0

고마워요 ... 아주 잘 작동합니다. 나는 그것을 litte로 지금 확장하고 싶다 ... 나는 매트릭스의 모든 i, j를 반복하고 싶다. 그리고 나는 3 차원을 따라 분만 가져 가고 싶다. 내가 이것을 할 수있는 openCV에는 무엇이 있는가? – Mustafa

+0

@Mustafa 당신은'Mat operator() (const Range * ranges) const; '로 당신의 i와 j에 대한 ROI를 설정할 수 있습니다. 그리고 나서'minMaxIdx'로 min을 찾습니다. –

관련 문제