2014-11-07 3 views
0

opencv의 Mat 객체에서 이방성 확산을 수행하려고합니다. 등방성는 C로 구현 수용 할 수있다 다음 나는 문서에서 검색 한 온라인하지만 havent 한 방법 double[][]Mat 개체를 변환하는 sufficiant 답을 발견, 그래서 그것을 통해 실행할 수 있습니다Mat 객체를 double arr (OpenCV)로 변환

applyFilter(double* I, Size sz, double theta, double scale, double eta) 

함수.

감사합니다,

답변

1
당신이이 조건을 위해 매트를 확인해야합니다

:

  • m.type() == CV_64FC1; // 1channel double
  • m.isContinuous() == true; // 패딩 또는 투자 수익 (ROI)하지

은 안전하게 사용할 수 있습니다

double *I = m.ptr<double>(0); // ptr to 1st row/element 
+0

이봐, 나는 다음과 내가 매트에 다시 이중으로 변환 할 때하지만, 기능을 허용하지 않습니다 시도했습니다 메신저 빈 흰색 페이지, 어떤 아이디어를 받고? Mat (rows, cols, CV_64FC1, I)와 for 루프를 사용하여 수동으로 데이터를 복사 해 보았습니다. – Nimrodshn

+0

값을 [0..1] 범위로 다시 조정해야 할 수도 있습니다. ''imshow ("lala", I * 1.0/255);'// 또는 다른 어떤 요소. 어쩌면 정규화() 할 수도 있습니다. – berak

+0

고마워요! 그것은 작동합니다! – Nimrodshn