c – 对角地使用putText()?使用OpenCV

c – 对角地使用putText()?使用OpenCV,第1张

概述是否可以使用putText()方法在对角线上绘制图片上的文本? 如果没有,除了使用addWeighted()将两张图片混合在一起(其中一张是对角放置的文本),还有其他选择吗? 我正在尝试在图片上放置文本水印,我的问题是现在我正在使用addWeighted()来混合在白色背景上对角绘制的文本.即使使用alpha 0.9,白色背景也会改变原始图像. 我正在使用OpenCV 2.4.9和VC10. pu 是否可以使用putText()方法在对角线上绘制图片上的文本?

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

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

我正在使用OpenCV 2.4.9和VC10. putText()方法是OpenCV上CORE库的一部分.

有任何想法吗?

谢谢,

亚历克斯

解决方法 使用我的评论的想法看看这个例子:

#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;}

结果:

总结

以上是内存溢出为你收集整理的c – 对角地使用putText()?使用OpenCV全部内容,希望文章能够帮你解决c – 对角地使用putText()?使用OpenCV所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1216264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存