opencv_5_图像像素的算术操作

embedded/2024/10/22 12:26:21/

方法1:调用库函数

void ColorInvert::mat_operator(Mat& image)
{
    Mat dst;
    Mat m = Mat::zeros(image.size(), image.type());
    m = Scalar(2, 2, 2);
    multiply(image, m, dst);

    m1 = Scalar(50,50, 50);
    //divide(image, m, dst); 

    //add(image, m1, dst); 

    //subtract(image, m1, dst);   
    namedWindow("加法操作", WINDOW_FREERATIO);
    imshow("加法操作", dst);

}

方法2:自己给三维数据赋值

void ColorInvert::mat_operator(Mat& image)

{  

    Mat dst = Mat::zeros(image.size(), image.type()); 
    m = Scalar(50, 50, 50);
    //namedWindow("加法操作", WINDOW_FREERATIO);
    int w = image.cols;
    int h = image.rows;
    int dims = image.channels();
    for (int row = 0; row < h; row++)
    {
        for (int col = 0; col < w; col++)
        {
            Vec3b p1 = image.at<Vec3b>(row,col);
            Vec3b p2 = m.at<Vec3b>(row, col);
            dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(p1[0]+  p2[0]);  //saturate_cast 小于0,赋值为0,大于255,赋值为255。
            dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(p1[1] + p2[1]);
            dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(p1[2] + p2[2]);
        }
    }

}


http://www.ppmy.cn/embedded/10543.html

相关文章

ESP32S3在VScode中使用USB口调试

ESP32S3在VScode中使用USB口调试 安装USB驱动修改工程的配置文件launch.jsonsettings.json 启动GDB Server 安装USB驱动 在powershell中输入下面指令&#xff1a; Invoke-WebRequest https://dl.espressif.com/dl/idf-env/idf-env.exe -OutFile .\idf-env.exe; .\idf-env.exe…

Create2024百度AI开发者大会记录

去年2023.3.16日百度文心大模型发布&#xff0c;今天2024.4.16日 代码智能体&#xff1a;思考模型代码解释器 思考模型整合提示&#xff0c;输入给代码解释器 代码解释器出结果&#xff0c;返回给思考模型&#xff0c;然后迭代 智能代码助手 baidu Comate 多模型推理 种子模型…

.net core webapi 添加日志管理看板LogDashboard

.net core webapi 添加日志管理看板LogDashboard 添加权限管理&#xff1a; 我们用的是Nlog文件来配置 <?xml version"1.0" encoding"utf-8" ?> <nlog xmlns"http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi"http:/…

小程序中使用HTTPS调用自带文本安全内容检测接口(msg_sec_check)的实现方法

在小程序中调用自带的文本安全内容检测接口&#xff0c;你需要使用小程序提供的wx.request方法。以下是一个示例代码&#xff1a; javascript代码: // 假设你已经获取了access_token,如果不知道如何获取&#xff0c;可以参考我上一篇文章 const access_token 你的access_tok…

VulBG: 构建行为图加强基于深度学习的漏洞检测模型

近年来&#xff0c;人们提出了基于深度学习&#xff08;DL&#xff09;的漏洞检测系统&#xff0c;用于从源代码中自动提取特征。这些方法在合成数据集上可以实现理想的性能&#xff0c;但在检测真实世界的漏洞数据集时&#xff0c;准确率却大幅下降。此外&#xff0c;这些方法…

day05 51单片机-外部中断、定时器

1 外部中断——按键控制LED亮灭 1.1 需求描述 本案例通过检测SW3触发的外部中断实现P00对应LED的亮灭。 1.2 硬件设计 1.2.1 中断简介 单片机中断是一种重要的计算机编程概念,用于处理在程序执行过程中突然发生的事件或条件。这些事件可以是外部硬件触发的,如按下按钮、…

【设计模式】使用 Builder 模式优化参数极多的函数

Builder&#xff08;生成器&#xff09;模式&#xff0c;让开发者能一步一步地创建复杂的对象。 优化参数极多的函数 常规方法定义的函数 一些函数&#xff0c;比如提交表单&#xff0c;需要的参数非常多&#xff0c;按照常规的写法&#xff0c;可能会定义为这样&#xff1a…

苍穹外卖day8(2)用户下单、微信支付

文章目录 前言一、用户下单1. 业务流程2. 接口设计3. 数据库设计3.1 订单表orders3.2 订单明细表 order_detail 4. 代码实现 二、订单支付 前言 用户下单 因为订单信息中包含了其他业务中的数据&#xff0c;在逻辑处理中涉及了多个其他业务&#xff0c;比如要判断地址簿、购物…