Ara*_*ras 25 c++ opencv computer-vision
我正在使用opencv 2.1.在我的代码中,我有几个图像存储为Mat对象初始化如下:
Mat img1 = imread("img/stuff.pgm", CV_LOAD_IMAGE_GRAYSCALE);
Run Code Online (Sandbox Code Playgroud)
在矩阵运算完成后,我可以使用imshow()正确显示它们.现在我想在图像上添加一些文字来描述发生了什么.看看文档似乎就是cvPutText()我需要的功能.但是,当我尝试这样的事情时:
cvPutText(result, "Differencing the two images.", cvPoint(30,30), &font, GREEN);
我得到以下编译错误:
error: cannot convert ‘cv::Mat’ to ‘CvArr*’ for argument ‘1’ to ‘void cvPutText(CvArr*, const char*, CvPoint, const CvFont*, CvScalar)’
在显示此图像时,我需要做些什么才能添加一些文字?
Ara*_*ras 61
我在看错了地方.我在cpp的较新的OpenCV文档中找到了答案.有一个名为putText()的新函数接受cv :: Mat对象.所以我尝试了这一行并且它有效:
putText(result, "Differencing the two images.", cvPoint(30,30),
FONT_HERSHEY_COMPLEX_SMALL, 0.8, cvScalar(200,200,250), 1, CV_AA);
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人.
Sta*_*mes 22
对于C++基本用法:
cv::putText(yourImageMat,
"Here is some text",
cv::Point(5,5), // Coordinates
cv::FONT_HERSHEY_COMPLEX_SMALL, // Font
1.0, // Scale. 2.0 = 2x bigger
cv::Scalar(255,255,255), // BGR Color
1, // Line Thickness (Optional)
cv::CV_AA); // Anti-alias (Optional)
Run Code Online (Sandbox Code Playgroud)
请参阅OpenCV文档中的putText().
putText(result, "Differencing the two images.", cvPoint(30,30),
FONT_HERSHEY_COMPLEX_SMALL, 0.8, cvScalar(200,200,250), 1, CV_AA);
Run Code Online (Sandbox Code Playgroud)
在上面的行中,"result"应该是cvArr*或IplImage*.但是从这里提供的代码中,我猜你传递了一个cv :: Mat对象.因此,您需要使用cvarrToMat()转换它,或者传递&result而不是result.
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
77983 次 |
| 最近记录: |