2013-02-27 4 views
1

나는 cv :: putText를 사용하여 프레임 (cv :: Mat) 위에 텍스트를 그리기 위해 openCV를 사용하고 있습니다. 그러나 출력은 "Funny text inside the box" 대신 4?= 또는 ,?, 및 그와 같은 (모든 실행 변경)을 표시합니다.잘못된 cv :: putText 결과

내 (간체) 코드 :

Mat image = Mat::zeros(imgH,imgW, CV_8UC1); 
int fontFace = FONT_HERSHEY_COMPLEX_SMALL; 
double fontScale = 1.5; 
int thickness = 2; 
Point textOrg(imgW/5, imgH/1.2); 
string someText = "Funny text inside the box"; 
putText(image, someText, textOrg, fontFace, fontScale, Scalar::all(255), thickness, 8); 

어떤 문제가 될 수 있을까? 감사합니다.

+0

해당 코드가 증상을 나타내지 않는 한 문제는 "단순화 된"것입니다. – molbdnilo

+0

이 코드는 동일한 결과를 생성합니다. – FisherI

+0

사용 된 cvMat (및 해당 구성 요소)가 작동 중입니다. 연결 라이브러리에 대한 몇 가지 문제가 있었어야합니다. 감사합니다. – FisherI

답변

0

문자열에 다른 작업을 수행하지 않겠습니까? 귀하의 코드가 잘 실행하는 것 같다

cv::putText

가 여기에 내가 도망 전체 코드입니다 :

#include "opencv2/core/core.hpp" 
#include "opencv2/highgui/highgui.hpp" 

using namespace cv; 

int main() 
{ 
    int imgW = 650; 
    int imgH = 50; 

    Mat image = Mat::zeros(imgH,imgW, CV_8UC1); 
    int fontFace = FONT_HERSHEY_COMPLEX_SMALL; 
    double fontScale = 1.5; 
    int thickness = 2; 
    Point textOrg(imgW/5, imgH/1.2); 
    string someText = "Funny text inside the box"; 
    putText(image, someText, textOrg, fontFace, fontScale, Scalar::all(255), thickness,8); 

    for(;;){ 
     imshow("text",image); 
     if(waitKey(30) > 0) break; 
    } 

    return 0; 
} 
+0

코드를 실행할 수 없습니다. 그러나 cvMat을 사용하도록 코드를 변경 했으므로 효과적이므로 지금은 만족합니다. 감사합니다. – FisherI

+0

기쁘게 u 그것을 밖으로 정렬했습니다. 이상한 행동, c 또는 C++ api를 사용하고 있습니까? –

+1

은 C++을 사용하고이 (여전히 알 수없는) 문제 이후에 c로 전환했습니다. 내 생각 엔 C++ 라이브러리의 컴파일이 잘못되었다고 생각합니다. – FisherI

0

내가 같은 문제 고투하고 마침내 OpenCV의 라이브러리 버전 2.4에 대한 해결되었다 OK. 9.0 rev 1. 다음 내용은 Android 기본 활동에 대한 내용이지만 모든 플랫폼에 대한 일반적인 개념은 동일합니다.

안드로이드에 대한

: 은 내가 먼저 정적 라이브러리를 연결하려고 Android.mk에서 "OPENCV_LIB_TYPE:=STATIC"를 추가했다. 링커가 ~ else :: std :: string에 대해 많은 오류를주었습니다. 그런 다음 우연히이 줄 "APP_STL := stlport_static"이 Application.mk에 있음을 알게되었습니다. 어떻게 거기에 있었는지 모르지만 그것을 "APP_STL := gnustl_static"으로 변경하고 모든 것이 효과가있었습니다.

일반적으로 OpenCV 라이브러리에 정적으로 링크하여 오류를 노출 해보십시오. 그런 다음 STL에 사용 된 포함 및 실제 라이브러리의 불일치를 추적하여 수정할 수 있습니다.

다른 이가 동일한 문제를 일으키는 데 도움이되기를 바랍니다.