你觉得上面的代码没有问题?我没看到调用font_path的地方
时间: 2024-02-20 13:59:12 浏览: 161
非常抱歉,我的回答有误,确实在上面的代码中没有调用 `font_path` 变量。正确的代码应该是这样的:
```c++
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
int main()
{
cv::Mat img = cv::imread("中文.jpg");
cv::namedWindow("原图", cv::WINDOW_NORMAL);
cv::imshow("原图", img);
// 设置中文字体
const char* font_path = "STHeiti Medium.ttc";
cv::Scalar textColor(0, 0, 255);
cv::Ptr<cv::FreeType2> ft2 = cv::freetype::createFreeType2(); // 创建 FreeType2 对象
ft2->loadFontData(font_path, 0); // 加载字体文件
cv::Mat img_with_text = img.clone();
ft2->putText(img_with_text, "中文测试", cv::Point(20, 50), 20, textColor, -1, cv::LINE_AA, false); // 绘制中文文字
cv::imshow("加文字后", img_with_text);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
```
这里使用了 `cv::freetype` 模块来绘制中文文字,需要先创建 `cv::FreeType2` 对象,然后加载字体文件,最后调用 `putText()` 函数绘制中文文字。
非常抱歉给您造成了困扰。
阅读全文