您好,登錄后才能下訂單哦!
在C++中,使用OpenCV庫可以輕松地為圖像添加水印
#include <opencv2/opencv.hpp>
#include<iostream>
int main(int argc, char** argv) {
// 讀取原始圖像和水印圖像
cv::Mat src_image = cv::imread("input.jpg");
cv::Mat watermark_image = cv::imread("watermark.png", cv::IMREAD_UNCHANGED); // 確保水印圖像是透明的
if (src_image.empty() || watermark_image.empty()) {
std::cout << "無法讀取圖像文件,請檢查文件路徑是否正確。"<< std::endl;
return -1;
}
// 獲取水印圖像的寬度和高度
int watermark_width = watermark_image.cols;
int watermark_height = watermark_image.rows;
// 將水印圖像復制到原始圖像上
cv::Mat roi = src_image(cv::Rect(src_image.cols - watermark_width - 10, src_image.rows - watermark_height - 10, watermark_width, watermark_height));
cv::addWeighted(roi, 1.0, watermark_image, 0.5, 0, roi);
// 顯示添加水印后的圖像
cv::imshow("Watermarked Image", src_image);
cv::waitKey(0);
// 保存添加水印后的圖像
cv::imwrite("output.jpg", src_image);
return 0;
}
這個程序首先讀取原始圖像和水印圖像。然后,它獲取水印圖像的寬度和高度,并將其復制到原始圖像上。最后,它顯示添加水印后的圖像并將其保存到文件中。
注意:在這個示例中,我們將水印圖像放置在原始圖像的右下角。你可以根據需要調整水印圖像的位置。此外,我們使用addWeighted()
函數將水印圖像與原始圖像的相應區域進行混合。你可以根據需要調整權重參數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。