使用C++进行文本文字插入(opencv)



#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;


int main()
{
	string text = "I Love You Baby ! ";
	int fontface = FONT_HERSHEY_COMPLEX_SMALL;
	double fontscale = 2;
	int thickness = 3;

	Mat image(700, 900, CV_8UC3, Scalar::all(0));
	int baseline = 0;

	Size textsize = getTextSize(text, fontface, fontscale, thickness, &baseline);
	baseline += thickness;

	Point textorg((image.cols - textsize.width) / 2, 
		(image.rows + textsize.height) / 2);
	rectangle(image, textorg + Point(0, baseline), textorg + Point(textsize.width,
		-textsize.height), Scalar(0, 0, 255));
	line(image, textorg + Point(0, thickness), textorg + Point(textsize.width, thickness),
		Scalar(0, 0, 255));
	putText(image, text, textorg, fontface, fontscale, Scalar::all(255), thickness, 8);
	imshow("添加文档:"
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用C++OpenCV进行区域填充的示例代码: ```c++ #include <opencv2/opencv.hpp> using namespace cv; int main() { // 读取图像 Mat image = imread("input.png", IMREAD_GRAYSCALE); // 定义掩膜 Mat mask(image.rows + 2, image.cols + 2, CV_8UC1, Scalar::all(0)); // 定义填充的颜色 Scalar color(255, 255, 255); // 定义填充的起点坐标 Point seedPoint(100, 100); // 进行区域填充 floodFill(image, mask, seedPoint, color); // 显示结果 imshow("Output", image); waitKey(0); return 0; } ``` 在上述代码中,我们首先使用`imread`函数读取输入图像,并将其转换为灰度图像。然后,我们定义了一个大小为`(rows+2) x (cols+2)`的掩膜,其中`rows`和`cols`分别是输入图像的行数和列数。我们将掩膜中的所有像素值初始化为0,表示所有像素都未被访问过。 接下来,我们定义了填充的颜色和填充的起点坐标。在本例中,我们选择了白色作为填充的颜色,并将填充的起点坐标设置为`(100, 100)`。 最后,我们调用了`floodFill`函数进行区域填充。该函数将从填充的起点坐标开始,向四个方向进行填充,直到遇到边界或已经填充过的像素为止。在填充的过程中,函数会将已经填充过的像素标记为1,并将其保存在掩膜中。这样,我们就可以避免对同一个像素进行重复的填充操作。 最后,我们使用`imshow`函数显示输出结果,并使用`waitKey`函数等待用户的按键操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值