如果没有,除了使用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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)