2012-11-13 2 views
2

이미지를 가져 와서 해당 부분을 확대 할 수있는 블록을 만들려고합니다. 이 작업을 수행하기 위해 OpenCV를 사용하고 있습니다.16 비트 부호있는 형식을 사용하는 CV 열기 ... 이미지 자르기 및 크기 조정

내 문제는 16 비트 서명 (cv_16sC1)을 사용하여 함수를 실행할 때마다 OpenCV 오류 : cvGetRectSubPix 파일 /media/virtex4/re/OpenCV-2.4에서 지원되지 않는 형식 또는 형식 조합() 오류가 발생한다는 것입니다. .0/modules/imgproc/src/samplers.cpp 줄 573을 참조하십시오.

먼저이 함수가 실제로 비트 깊이에서 작동하는지 여부를 알 수 있습니까? 알아내는 방법이 있습니까? 이것은 그 각각 (I 오류를 포기하지 않았다 CV_32f의 형식을 변경할 때까지) 같은 오류를 제공 여러 시도 중 하나입니다

cv::Mat image_1_in(video_frame->_width, video_frame->_height, CV_16SC1, video_frame->GetPointerToYLine(0)); 
    cv::Mat image_1_out(video_frame->_width, video_frame->_height, CV_16SC1, video_frame_out->GetPointerToYLine(0)); 

    cv::Mat temp_image; 

    getRectSubPix(image_1_in, cv::Size(100, 200), cv::Point2f(200, 200), temp_image); 
    resize(temp_image, image_1_out, Size(video_frame_out->_width, video_frame_out->_height)); 

...

+0

temp_image의 유형을 CV_32SC1로 지정하십시오. – cyberdecker

+0

그걸로 행운이 없다. – robby987

답변

3

그것은 단지와 getRectSubPix 일 것 같다 { src, dst} {CV_8U, CV_8U}, {CV_32F, CV_32F} 및 {CV_8U, CV_32F} 유형을 사용합니다.

나는 소스 코드에 찍어 그 그림. API 참조에는 사양이 없습니다.

관련 문제