用opencv在图片上面添加水印

说明:

        用opencv在图片上面添加事件水印,保存图片,并且显示修改后的图片,代码如下:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;

int showBitmap() {
    string img_path = "../data/screenshot.png";
    string nimg_path = "../data/screenshot_1.png";
    Mat src;
    //加载图片
    //src = imread(img_path, IMREAD_REDUCED_GRAYSCALE_2);
    src = imread(img_path, IMREAD_REDUCED_COLOR_2);
    //检测是否加载成功
    if (!src.data)  //or == if(src.empty())
    {
        cout << "Could not open or find the image" << endl;
        return -1;
    }
    time_t t = time(0);
    char tmp[64];
    strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A",localtime(&t) );
    cout << tmp << endl;  //输出nowtime
    //circle(src,Point(300,300),100,0,3);//参数一目标图像,参数二中心点坐标,参数三半径,参数四颜色,参数五厚度
    putText(src, tmp, Point(src.cols * 9 / 12, src.rows * 7 / 8),FONT_HERSHEY_SIMPLEX,0.5,0,2);//参数一目标图像,参数二文本,参数三文本位置,参数四字体类型, 参数五字体大小,参数六字体颜色,参数七文本厚度
    imwrite(nimg_path, src); //保存修改后的图片
    /* cv::Point p0 = cv::Point(src.cols / 8,src.rows / 8);
    cv::Point p1 = cv::Point(src.cols * 7 / 8,src.rows * 7 / 8);
    //设定点的起始和终止坐标
    rectangle(src,p0,p1,cv::Scalar(0,255,0),5,8);
    //画四边形的函数
    //第一个参数为画图的目标图像
    //第二个参数为画图的起始坐标
    //第三个参数为画图的终止坐标
    //第四个参数为画图的颜色
    cv::Point p2 = cv::Point(src.cols * 2 / 8, src.rows * 2 / 8);
    cv::Point p3 = cv::Point(src.cols * 6 / 8, src.rows * 6 / 8);
    rectangle(src, p2, p3, cv::Scalar(0, 255, 255), 2, 4);*/
    // 创建窗口
    namedWindow("Display", WINDOW_AUTOSIZE);
    //显示图像
    imshow("Display", src);
    //暂停,等待按键结束
    waitKey(0);
    return 0;
}

int main() {
    showBitmap();
    return 0;
}

CMakeList.txt文件配置如下:

cmake_minimum_required(VERSION 3.17)
project(MyOpencv)

set(CMAKE_CXX_STANDARD 17)
set(OpenCV_DIR D:\\software\\opencv\\opencv\\mingw-build)
find_package(OpenCV REQUIRED)
include_directories(include)
include_directories(${OpenCV_INCLUDE_DIRS})
set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs)
add_executable(MyOpencv main.cpp)
target_link_libraries(MyOpencv ${OpenCV_LIBS})

文件目录结构:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值