溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++ OpenCV實(shí)現(xiàn)圖像水印添加

發(fā)布時(shí)間:2024-08-26 19:05:39 來源:億速云 閱讀:89 作者:小樊 欄目:編程語言

在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;

    // 將水印圖像復(fù)制到原始圖像上
    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;
}

這個(gè)程序首先讀取原始圖像和水印圖像。然后,它獲取水印圖像的寬度和高度,并將其復(fù)制到原始圖像上。最后,它顯示添加水印后的圖像并將其保存到文件中。

注意:在這個(gè)示例中,我們將水印圖像放置在原始圖像的右下角。你可以根據(jù)需要調(diào)整水印圖像的位置。此外,我們使用addWeighted()函數(shù)將水印圖像與原始圖像的相應(yīng)區(qū)域進(jìn)行混合。你可以根據(jù)需要調(diào)整權(quán)重參數(shù)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI