2010-02-15 1 views
0

단일 채널 이미지가 입력입니다. (defalut IPL_DEPTH_8U)opencv : 이미지 픽셀 액세스를위한 이중 포인터 연산에서 실행 중지

내 입력 이미지의 각 픽셀에 2.8085와 같은 스칼라 부동 소수점 숫자를 곱합니다 (알고리즘의 일부로).

그래서이

을 IPL_DEPTH_64F하는 깊이를 증가시키고 이미지의 유형을 변경 날 필요로하지만 IPL_DEPTH_64F 내 이미지 데이터 유형을 변경하고 각 픽셀에 액세스하기 위해 이중 *을하려고 할 때마다, 내 프로그램 실행이 갑자기 중지 , "file.exe가 작동을 멈췄습니다. 문제로 인해 프로그램이 작동을 멈 춥니 다."

내 프로세서가 double ptr arithmetic을 처리 할 수 ​​없다는 것을 의미합니까?

+0

디버거에서 프로그램을 실행 해 보셨습니까? –

답변

1

새 이미지를 만들어야합니다. 새 이미지를 깊이 IPL_DEPTH_64F으로 만들고 각 픽셀을 적절한 값 (2.8085 * 값)으로 설정하는 것이 좋습니다.

또한 사용하신 코드를 게시 할 수 있습니까?

+0

U가 옳았습니다. 64depth의 새로운 이미지를 만든 다음 포인터 타입 변환보다는 cvconvertscale을 만드는 것이 더 쉬웠습니다. –

+0

할당 된 메모리가'IPL_DEPTH_8U'의'sizeof (uchar) * heigh * width' 였기 때문에 포인터 타입 변환이 작동하지 않았습니다. – Jacob