gpt4 book ai didi

c++ - 对角地使用 putText()?使用 OpenCV

转载 作者:太空狗 更新时间:2023-10-29 20:03:46 37 4
gpt4 key购买 nike

是否可以使用putText()方法在图片上斜着画文字?

如果不是,除了用addWeighted()将两张图片混合在一起(其中一张是对角放置的文本),还有其他选择吗?

我正在尝试在图片上放置文本水印,我的问题是现在我正在使用 addWeighted() 来混合在白色背景上对角线 绘制的文本。即使使用 alpha 0.9,白色背景也会改变原始图片。

我在 VC10 上使用 OpenCV 2.4.9。 putText() 方法是 OpenCV 核心库的一部分。

有什么想法吗?

谢谢,

亚历克斯

最佳答案

使用我评论的想法看一下这个例子:

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

using namespace std;
using namespace cv;

/**
* Rotate an image (source: http://opencv-code.com/quick-tips/how-to-rotate-image-in-opencv/)
*/
void rotate(cv::Mat& src, double angle, cv::Mat& dst)
{
int len = std::max(src.cols, src.rows);
cv::Point2f pt(len/2., len/2.);
cv::Mat r = cv::getRotationMatrix2D(pt, angle, 1.0);

cv::warpAffine(src, dst, r, cv::Size(len, len));
}


int main() {

Mat img = imread("lenna.png", CV_LOAD_IMAGE_COLOR);

// Create and rotate the text
Mat textImg = Mat::zeros(img.rows, img.cols, img.type());
putText(textImg, "stackoverflow", Point(0, img.cols/2), FONT_HERSHEY_SIMPLEX, 2.0,Scalar(20,20,20),2);
rotate(textImg, -45, textImg);

// Sum the images (add the text to the original img)
img= img+textImg;

namedWindow("WaterMark", CV_WINDOW_AUTOSIZE);
imshow("WaterMark", img);

waitKey(0);
return 0;
}

结果:

lenna Wattermark

关于c++ - 对角地使用 putText()?使用 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956954/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com