OpenCV 文字绘制字体样式

int main()
{
	Mat src = imread("C:\\x.png");	 
	putText(src, "Hello world,Who are you, Lord?", Point(10, 60),  FONT_HERSHEY_SIMPLEX, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 100), FONT_HERSHEY_PLAIN, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 150), FONT_HERSHEY_DUPLEX, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 200), FONT_HERSHEY_COMPLEX, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 250), FONT_HERSHEY_TRIPLEX, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 300), FONT_HERSHEY_COMPLEX_SMALL, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 350), FONT_HERSHEY_SCRIPT_SIMPLEX, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 400), FONT_HERSHEY_SCRIPT_COMPLEX, 1, Scalar(0, 0, 255), 1, 8);
	putText(src, "Hello World,Who are you, Lord?", Point(10, 450), FONT_ITALIC, 1, Scalar(0, 0, 255), 1, 8);
	imwrite("src.png", src);
	imshow("src", src);
	waitKey(0);
	 
}

OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉库,主要用于实时图像处理、计算机视觉任务以及机器学习相关的应用。如果你想在C++中使用OpenCV绘制文字符,你需要进行以下几个步骤: 1. **安装字体**:OpenCV本身并不内置中文字符的字体支持,你需要下载一个支持中文的TrueType或OpenType字体文件,并将其添加到OpenCV的查找路径中。 ```cpp #include <opencv2/core.hpp> cv::String chineseText = "你好"; // 假设这是你要绘制的中文字符串 cv::Font font = cv::fontFace(cv::FONT_HERSHEY_SIMPLEX); // 使用预定义的简单体字形 ``` 2. **设置字体属性**: - `cv::Font`结构体可以让你指定字体的大小(如`cv::Font::pointSize`)、样式(如粗细`cv::Font::thickness`)等。 3. **创建文本矩形**: ```cpp double textScale = 0.5; // 字符的缩放比例 int textWidth, textHeight; cv::getTextSize(chineseText, font, textScale, 1, &textWidth, &textHeight); ``` 4. **绘制文本**: - `cv::putText`函数用于在图片上绘制文本,它需要输入图像、文字、坐标、字体信息以及颜色等参数。 ```cpp cv::Mat img = ...; // 你的源图像 cv::rectangle(img, cv::Point(10, 10), cv::Point(textWidth + 10, textHeight + 10), cv::Scalar(0, 0, 255), 2); // 绘制包含文本的矩形作为背景 cv::putText(img, chineseText, cv::Point(20, 30), font, textScale, cv::Scalar(0, 255, 0), 2); // 绘制绿色的文本 ``` 5. **显示结果**: ```cpp imshow("Chinese Text", img); waitKey(); ``` 注意:由于OpenCV处理的是二进制图像数据,所以在实际操作中可能会遇到中文字符编码的问题,可能需要额外处理。此外,对于一些非常复杂的汉字,尤其是非简体字,可能绘制效果不如预期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值