//minMaxLoc函数找出图像中最小值最大值函数//minMaxLoc( Mat src, mask=Mat() );//参数解释//参数1:InputArray类型的src,输入单通道数组(图像)。//参数2:InputArray类型的mask,用于选择子阵列的可选掩膜。////说明://1  minMaxLoc寻找矩阵(一维数组当作向量,用Mat定义) 中最小值和最大值的位置.//2  参数若不需要,则置为NULL或者0,即可.//meanStdDev://计算矩阵的均值和标准偏差。//meanStdDev(Mat src,MatOfDouble mean, MatOfDouble stddev)public void testMinMaxLoc() {Mat src = GeneralUtils.converMat("C:\\图片\\test\\0001.jpg");List<Mat> mv = new ArrayList<>();Core.split(src, mv);//蓝色通道Mat Blue = mv.get(0);//计算蓝色通道最大值最小值Core.MinMaxLocResult result = new Core.MinMaxLocResult();result = Core.minMaxLoc(Blue);Double minVal = result.minVal;Double maxVal = result.maxVal;Point minLoc = result.minLoc;Point maxLoc = result.maxLoc;System.out.println("minVal:" + minVal);System.out.println("maxVal:" + maxVal);System.out.println("minLoc:" + minLoc);System.out.println("maxLoc:" + maxLoc);// 计算均值与方差MatOfDouble means = new MatOfDouble();MatOfDouble stddev = new MatOfDouble();Core.meanStdDev(src, means, stddev);System.out.println("blue channel->> mean:" + means.get(0, 0)[0] + ", " + "stddev:" + stddev.get(0, 0)[0]);System.out.println("greed channel->> mean:" + means.get(1, 0)[0] + ", " + "stddev:" + stddev.get(1, 0)[0]);System.out.println("red channel->> mean:" + means.get(2, 0)[0] + ", " + "stddev:" + stddev.get(2, 0)[0]);}//normalize()函数可以对向量进行范数归一化或者范围归一化//normalize(Mat src, Mat dst, double alpha = 1, double beta = 0, intnorm_type = NORM_L2, int dtype = -1, Mat mask = noArray());//src:输入图像/数组//dst:输出图像/数组//alpha:范围的最小值//beta:范围的最大值(不用于范数归一化)//intnorm_type:归一操作的类型,有如下三种://           NORM_MINMAX:将数组的数值归一化到[alpha,beta]内,常用。//            NORM_L1:归一化数组的L1-范数(绝对值的和)//            NORM_L2:归一化数组的(欧几里德)L2-范数//dtype:为负数时,输出数组的类型与输入数组相同,否则只是通道数相同,类型默认为:type = CV_MAT_DEPTH//mask:指定操作的区域/空间//归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快public void testNormalize() {Mat src = GeneralUtils.converMat("C:\\图片\\test\\0001.jpg");//转换成灰度图Mat gray = new Mat();Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);//转换为浮点数类型数组gray.convertTo(gray, CvType.CV_32F);//NORM_MINMAX:将数组的数值归一化到[alpha,beta]内Mat dst = Mat.zeros(gray.size(), CvType.CV_32FC1);Core.normalize(gray, dst, 1.0, 0, Core.NORM_MINMAX);Mat result = new Mat();Core.multiply(dst, new Scalar(255), result);GeneralUtils.saveByteImg(result, "C:\\图片\\test\\NORM_MINMAX.jpg");//NORM_L1:归一化数组的L1-范数(绝对值的和)Core.normalize(gray, dst, 1.0, 0, Core.NORM_L1);Mat result1 = new Mat();Core.multiply(dst, new Scalar(255), result);GeneralUtils.saveByteImg(result1, "C:\\图片\\test\\NORM_L1.jpg");//NORM_L2:归一化数组的(欧几里德)L2-范数Core.normalize(gray, dst, 1.0, 0, Core.NORM_L2);Mat result2 = new Mat();Core.multiply(dst, new Scalar(255), result);GeneralUtils.saveByteImg(result2, "C:\\图片\\test\\NORM_L2.jpg");}

程序所引用的GeneralUtils:GeneralUtils

《景岳全书》

求关注!!

java opencv 基本操作4相关推荐

  1. Atitit Java OpenCV 捕获视频

    Atitit Java  OpenCV 捕获视频 ,打开一段视频或默认的摄像头 有两种方法,一种是在定义类的时候,一种是用open()方法. 一. 读取视频序列 OpenCV提供了一个简便易用的框架以 ...

  2. OpenCV修养(二)——OpenCV基本操作

    文章目录 2 OpenCV基本操作 2.1 IO操作 2.2 图像基本操作 2.2.1 图像绘制 2.2.1.1 绘制直线 2.2.1.2 绘制圆形 2.2.1.3 绘制矩形 2.2.1.4 添加文字 ...

  3. java opencv安装路径_Java搭建opencv开发环境

    由本菜13历经4天才搭建的好的Java OpenCv开发环境带来 . PS:不保证过程都是必须的,必要的. 反正我自己成功了... 嘿嘿嘿. 官方网站 SourceForge 点击FilesFiles ...

  4. Java垂直镜像,Java OpenCV实现图像镜像翻转效果

    本文实例为大家分享了Java OpenCV实现图像镜像翻转效果的具体代码,供大家参考,具体内容如下 主要使用OpenCV的flip()方法,可以实现图像的垂直.水平以及同时垂直镜像翻转. flip是C ...

  5. Java OpenCV之Mat类的概述、常用构造方法、常用函数

    Java OpenCV之Mat类 概述 头部信息 数据类型 数据部分 Mat对象的构造方法 Mat() Mat(long addr) Mat(int row,int cols,int type) Ma ...

  6. idea搭建java openCV环境

    idea搭建java openCV环境 Opencv安装包下载链接 1.点击下载 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2.双击运行 3.生成文件夹 4.复制这两个文件 ...

  7. opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)

    opencv基本操作二 要点 代码 例程一 例程二 要点 opencv常用读视频函数 cv2.VideoCapture .cv2.VideoCapture.get 等,可以参考这里 opencv常用写 ...

  8. Java OpenCV 图像处理34 图形图像 分水岭 watershed

    Java OpenCV 图像处理34 图形图像 分水岭 watershed package com.xu.opencv;import org.opencv.core.Core; import org. ...

  9. java opencv 实现换脸

    最近碰到个项目,要求是实现人脸交换,即如下图所示,将右边汤唯的脸换成左边鹿晗的脸,变成中间的照片,就是人脸交换. 网上一般都是基于opencv和Dlib来实现,且多为c++或python语言,或app ...

  10. Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取

    Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取 Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频读取 package com.xu.opencv.video; ...

最新文章

  1. web端 复合控件 响应回发
  2. FPGA学习之路—应用程序—原码二位乘法器及Verilog代码分析
  3. 把变量赋值给寄存器_散装 vs 批发谁效率高?变量访问被ARM架构安排的明明白白...
  4. QT调用百度语音REST API实现语音合成
  5. C++调用CMD,等CMD运行完后继续运行C++
  6. Hyperledger Fabric教程(14)--byfn.sh所有命令
  7. linux上2048游戏程序,如何在Ubuntu中安装2048游戏
  8. A very hard mathematic problem HDU - 4282
  9. 远程桌面计算机名如何删除,如何删除远程连接记录?如何用电脑识别码实现远程控制?...
  10. 高等数学:8.2 数量积、向量积、混合积
  11. meanshift聚类算法跟踪原理
  12. NBA GLOSSARY
  13. 哈夫曼编码树的经典题目
  14. python之遍历技巧
  15. Fanuc发那科数据采集
  16. mysql命令去重_mysql去重
  17. 【转需】【金融干货】四步教你:开发风控模型?
  18. 中文词向量的下载与使用探索 (tensorflow加载词向量)
  19. 人工智能数学核心理论34讲精华视频免费领(微积分、概率论与数理统计、线性代数三部曲)
  20. 项目后台管理系统小结

热门文章

  1. C/C++二维数组指针(指向二维数组的指针)详解
  2. IEEE2020-IJON: Exploring Deep State Spaces via Fuzzing
  3. CRM及协同办公高保真原型、审批管理、办公申请、工单管理、任务管理、日程管理、工作报告、签到考勤、客户管理、销售线索、商机管理、订单管理、账务管理、统计报表、回款管理、发票管理、报销管理、拜访跟进
  4. Mysql 分片,大数据量时扩容方案
  5. NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)
  6. photoshop2019及其破解器
  7. 解密带星号手机号网页_外滩大会“硬核科技”解密:支付宝金融级业务的“定海神针”...
  8. 基于linux平台的嵌入式开发每日一练(二)
  9. Eviews10 如何将季度数据转为月度数据(低频转高频)
  10. 电脑版美食大战老鼠放置html,美食大战老鼠2