添加文字水印和图像水印

#include <opencv2/opencv.hpp>

#include <string>

int main() {

// 读取 BMP 图像

cv::Mat image = cv::imread("input.bmp");

if (image.empty()) {

std::cout << "无法打开图像文件!" << std::endl;

return -1;

}

// 设置水印文字

std::string text = "Watermark";

int fontFace = cv::FONT_HERSHEY_SIMPLEX;

double fontScale = 1;

int thickness = 2;

cv::Scalar color(255, 255, 255); // 白色水印

// 定位水印的位置

int baseline;

cv::Size textSize = cv::getTextSize(text, fontFace, fontScale, thickness, &baseline);

cv::Point textOrg((image.cols - textSize.width) / 2, (image.rows + textSize.height) / 2);

// 在图像上添加文字水印

cv::putText(image, text, textOrg, fontFace, fontScale, color, thickness);

// 保存带水印的 BMP 图像

cv::imwrite("output_with_text_watermark.bmp", image);

return 0;

}

相关推荐
dazzle15 小时前
计算机视觉处理(OpenCV基础教学(十九):图像轮廓特征查找技术详解)
人工智能·opencv·计算机视觉
转基因15 小时前
C++的IO流
开发语言·c++
程序员zgh16 小时前
Linux 系统调用
linux·运维·服务器·c语言·c++·系统安全
天若有情67316 小时前
打破思维定式!C++参数设计新范式:让结构体替代传统参数列表
java·开发语言·c++
初晴や16 小时前
【C++】图论:基础理论与实际应用深入解析
c++·算法·图论
欧阳x天16 小时前
STL讲解(二)—string类的模拟实现
c++
带土116 小时前
2. Linux下FFmpeg C++音视频解码+推流开发
linux·c++·ffmpeg
星火开发设计16 小时前
C++ set 全面解析与实战指南
开发语言·c++·学习·青少年编程·编程·set·知识
木头程序员16 小时前
大模型边缘部署突破:动态推理技术与精度-延迟-能耗帕累托优化
大数据·人工智能·计算机视觉·自然语言处理·智能手机·数据挖掘
scx2013100417 小时前
20260105 莫队总结
c++