Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCv c++;cvPutText总是抛出;“未知数组类型”;当与垫子一起使用时_C++_Opencv - Fatal编程技术网

C++ OpenCv c++;cvPutText总是抛出;“未知数组类型”;当与垫子一起使用时

C++ OpenCv c++;cvPutText总是抛出;“未知数组类型”;当与垫子一起使用时,c++,opencv,C++,Opencv,这是简化代码: try { Mat pic = imread("../files/words.bmp"); CvFont font; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0); cvPutText(&pic, "text", cvPoint(1, 20), &font, cvScalar(0, 255, 0)); namedWindow("x", WINDOW_AUTO

这是简化代码:

try {
    Mat pic = imread("../files/words.bmp");
    CvFont font;
    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0);
    cvPutText(&pic, "text", cvPoint(1, 20), &font, cvScalar(0, 255, 0));
    namedWindow("x", WINDOW_AUTOSIZE);
    imshow("x", pic);
    return 0;
} catch(Exception& e) {
    cout << e.err;
}
试试看{
Mat pic=imread(“../files/words.bmp”);
CvFont字体;
cvInitFont(&font,CV_font_HERSHEY_SIMPLEX,1.0,1.0);
cvPutText(&pic,“text”,cvPoint(1,20),&font,cvScalar(0,255,0));
namedWindow(“x”,窗口自动大小);
imshow(“x”,pic);
返回0;
}捕获(例外和e){

CUT< P>因为你正在混合C和C++风格的OpenCV API。C风格<代码> CVPTEXTHOTER()/Cux>只能处理类型<代码> IPLIMAGI**/COD>的图像,而不是C++风格>代码> Mat < /C> > 你需要把它改成

IplImage *pic = cvLoadImage("../files/words.bmp");
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0);
cvPutText(pic, "text", cvPoint(1, 20), &font, cvScalar(0, 255, 0));

P>可选的,可以使用C++风格API,即.<

<强> P.S:建议:尽量不要混淆C和C++ API。

确保 MAPIC >代码>成功加载图像。尝试在代码<> CVPTEXTHECT()之前放置<代码> IsSee(“X”,PIC);<代码> >
。pic已成功加载,我对此进行了检查。调试显示其类型为UINT8。请改用cv::putText。正如我所说的。我不想使用cv::putText,因为它不允许我拉伸文本:|