码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenCV-滤波矩阵(java版)


    滤波矩阵

    • multiply()

    用下图做演示
    在这里插入图片描述

    multiply()

    顾名思义,乘法函数。使用该函数可以将像素的每个通道值乘以这个参数。

    方法说明
    multiply(Mat src1, Scalar src2, Mat dst, double scale, int dtype) src1:原图像
    src2:颜色矩阵
    scale:src2矩阵参数的乘数值(从图像的角度来说,可以理解为亮度值,值越大,图像越亮)
    dst:目标图像
    dtype:图像(矩阵)类型
    multiply(Mat src1, Scalar src2, Mat dst, double scale)
    multiply(Mat src1, Scalar src2, Mat dst)
    例:当 src2为[0.0,0.5,1.0]时候,表示在原矩阵像素值的基础上,蓝色通道值乘以0,绿色通道值乘以0.5,红色通道值乘以0(当最终通道值大于255时,通道值为255)
    scale:表示在src通道的基础上乘以相对应的scale值,比如scale为3时,结合前面的src2矩阵,此时src2矩阵值变为[0.0,1.5,3.0]
    为验证结果,下面创建一个3*3,像素值为[122,122,122]的矩阵图 示例:
        public static void main(String[] args) {
            String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
            System.load(libraryPath);
            Mat mat = new Mat(3,3, CvType.CV_8UC3,new Scalar(122,122,122));
            System.out.println("mat1>>"+mat.dump());
            Core.multiply(mat,new Scalar(0.0,0.5,1.0),mat,3,CvType.CV_8UC3);
            System.out.println("mat2>>"+mat.dump()+"=="+mat);
            HighGui.imshow("mat",mat);
            HighGui.waitKey(0);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行结果

    mat1>>[122, 122, 122, 122, 122, 122, 122, 122, 122;
    122, 122, 122, 122, 122, 122, 122, 122, 122;
    122, 122, 122, 122, 122, 122, 122, 122, 122]
    mat2>>[ 0, 183, 255, 0, 183, 255, 0, 183, 255;
    0, 183, 255, 0, 183, 255, 0, 183, 255;
    0, 183, 255, 0, 183, 255, 0, 183, 255]==Mat [ 33CV_8UC3, isCont=true, isSubmat=false, nativeObj=0xbdaeb0, dataAddr=0xbdb100 ]

    读取图像
    示例:

        public static void main(String[] args) {
            String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
            System.load(libraryPath);
            Mat mat = Imgcodecs.imread("flower.jpg");
            Core.multiply(mat,new Scalar(0.0,0.5,1.0),mat,1.0,CvType.CV_8UC3);
            HighGui.imshow("mat",mat);
            HighGui.waitKey(0);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果
    在这里插入图片描述
    亮度演示:
    示例:

        public static void main(String[] args) {
            String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
            System.load(libraryPath);
            Mat mat = Imgcodecs.imread("flower.jpg");
            //为演示效果,将Scalar设为(1.0,1.0,1.0)
            Core.multiply(mat,new Scalar(1.0,1.0,1.0),mat,2.0,CvType.CV_8UC3);
            HighGui.imshow("mat",mat);
            HighGui.waitKey(0);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:在这里插入图片描述

  • 相关阅读:
    计算机毕业设计Java疫情防控管理系统(源码+系统+mysql数据库+Lw文档)
    CSP202206-1 归一化处理 (C/C++)
    梳理Langchain-Chatchat-UI接口文档
    cesium 实现三维无人机航拍过程实景效果
    代理模式【静态代理和动态代理实现业务功能扩展】
    温故知新,signalR、RSA加密、ConcurrentQueue队列
    「一体化信息建设」,江苏人社如何完成数据安全管控(建设篇)
    记一次线上问题,拿到的不是最新的数据 → 偶尔的热情真的难顶呀!
    REACH认证办理流程,与高度关注物质SVHC认证的关系
    【深入浅出Spring原理及实战】「IOC容器初始化」彻底让你明白和理解运行原理和源码流程
  • 原文地址:https://blog.csdn.net/qq_27185879/article/details/127187720
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号