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,因为它不允许我拉伸文本:|