java opencv 基本操作4
//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相关推荐
- Atitit Java OpenCV 捕获视频
Atitit Java OpenCV 捕获视频 ,打开一段视频或默认的摄像头 有两种方法,一种是在定义类的时候,一种是用open()方法. 一. 读取视频序列 OpenCV提供了一个简便易用的框架以 ...
- 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 添加文字 ...
- java opencv安装路径_Java搭建opencv开发环境
由本菜13历经4天才搭建的好的Java OpenCv开发环境带来 . PS:不保证过程都是必须的,必要的. 反正我自己成功了... 嘿嘿嘿. 官方网站 SourceForge 点击FilesFiles ...
- Java垂直镜像,Java OpenCV实现图像镜像翻转效果
本文实例为大家分享了Java OpenCV实现图像镜像翻转效果的具体代码,供大家参考,具体内容如下 主要使用OpenCV的flip()方法,可以实现图像的垂直.水平以及同时垂直镜像翻转. flip是C ...
- Java OpenCV之Mat类的概述、常用构造方法、常用函数
Java OpenCV之Mat类 概述 头部信息 数据类型 数据部分 Mat对象的构造方法 Mat() Mat(long addr) Mat(int row,int cols,int type) Ma ...
- idea搭建java openCV环境
idea搭建java openCV环境 Opencv安装包下载链接 1.点击下载 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2.双击运行 3.生成文件夹 4.复制这两个文件 ...
- opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)
opencv基本操作二 要点 代码 例程一 例程二 要点 opencv常用读视频函数 cv2.VideoCapture .cv2.VideoCapture.get 等,可以参考这里 opencv常用写 ...
- Java OpenCV 图像处理34 图形图像 分水岭 watershed
Java OpenCV 图像处理34 图形图像 分水岭 watershed package com.xu.opencv;import org.opencv.core.Core; import org. ...
- java opencv 实现换脸
最近碰到个项目,要求是实现人脸交换,即如下图所示,将右边汤唯的脸换成左边鹿晗的脸,变成中间的照片,就是人脸交换. 网上一般都是基于opencv和Dlib来实现,且多为c++或python语言,或app ...
- Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取
Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取 Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频读取 package com.xu.opencv.video; ...
最新文章
- web端 复合控件 响应回发
- FPGA学习之路—应用程序—原码二位乘法器及Verilog代码分析
- 把变量赋值给寄存器_散装 vs 批发谁效率高?变量访问被ARM架构安排的明明白白...
- QT调用百度语音REST API实现语音合成
- C++调用CMD,等CMD运行完后继续运行C++
- Hyperledger Fabric教程(14)--byfn.sh所有命令
- linux上2048游戏程序,如何在Ubuntu中安装2048游戏
- A very hard mathematic problem HDU - 4282
- 远程桌面计算机名如何删除,如何删除远程连接记录?如何用电脑识别码实现远程控制?...
- 高等数学:8.2 数量积、向量积、混合积
- meanshift聚类算法跟踪原理
- NBA GLOSSARY
- 哈夫曼编码树的经典题目
- python之遍历技巧
- Fanuc发那科数据采集
- mysql命令去重_mysql去重
- 【转需】【金融干货】四步教你:开发风控模型?
- 中文词向量的下载与使用探索 (tensorflow加载词向量)
- 人工智能数学核心理论34讲精华视频免费领(微积分、概率论与数理统计、线性代数三部曲)
- 项目后台管理系统小结
热门文章
- C/C++二维数组指针(指向二维数组的指针)详解
- IEEE2020-IJON: Exploring Deep State Spaces via Fuzzing
- CRM及协同办公高保真原型、审批管理、办公申请、工单管理、任务管理、日程管理、工作报告、签到考勤、客户管理、销售线索、商机管理、订单管理、账务管理、统计报表、回款管理、发票管理、报销管理、拜访跟进
- Mysql 分片,大数据量时扩容方案
- NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)
- photoshop2019及其破解器
- 解密带星号手机号网页_外滩大会“硬核科技”解密:支付宝金融级业务的“定海神针”...
- 基于linux平台的嵌入式开发每日一练(二)
- Eviews10 如何将季度数据转为月度数据(低频转高频)
- 电脑版美食大战老鼠放置html,美食大战老鼠2