什么是javaCV?,百度百科:

JavaCV 是一款开源的视觉处理库,基于GPLv2协议,对各种常用计算机视觉库封装后的一组jar包,封装了OpenCV、libdc1394、OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库的接口。
JavaCV通过其中的utility类方便的在包括Android在内的Java平台上调用这些接口。

特点
另外JavaCV还带有硬件加速的全屏幕图像显示(CanvasFrame),易于在多个内核中执行并行代码(并行),用户友好的几何和色彩的相机和投影仪校准(GeometricCalibrator,ProCamGeometricCalibrator,ProCamColorCalibrator ),检测和特征点(ObjectFinder),一类是实现投影,摄像系统(直接图像对齐设置匹配主要GNImageAligner,ProjectiveTransformer,ProjectiveGainBiasTransformer,ProCamTransformer和ReflectanceInitializer),以及在JavaCV类杂项功能。

avaCV配置(下载的jar比较多近500M):

pom.xml引入

<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.4.3</version>
</dependency>

Laplacian 梯度函数实现

package com.example.demo.hello;import java.io.File;
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
import static org.bytedeco.javacpp.opencv_imgcodecs.*;public class HelloJavacv {public static void main(String[] args) {String path = "xxxxxxxx";        //要遍历的路径File file = new File(path+"source");        //获取其file对象File[] fs = file.listFiles();    //遍历path下的文件和目录,放在File数组中Mat srcImage = null;for (File f : fs) {                    //遍历File[]数组if (!f.isDirectory())        //若非目录(即文件),则打印srcImage = imread(f.getAbsolutePath());Mat dstImage = new Mat();cvtColor(srcImage, dstImage, COLOR_BGR2GRAY);        //转化为灰度图//在gray目录下生成灰度图片imwrite(path+"gray//gray-"+f.getName(), dstImage);Mat laplacianDstImage = new Mat();//阈值太低会导致正常图片被误断为模糊图片,阈值太高会导致模糊图片被误判为正常图片Laplacian(dstImage, laplacianDstImage, CV_64F);//在laplacian目录下升成经过拉普拉斯掩模做卷积运算的图片imwrite(path+"laplacian//laplacian-"+f.getName(), laplacianDstImage);//矩阵标准差Mat stddev = new Mat();//求矩阵的均值与标准差meanStdDev(laplacianDstImage, new Mat(), stddev);//double norm = Core.norm(laplacianDstImage); // ((全部元素的平方)的和)的平方根//System.out.println("\n矩阵的均值:\n" + mean.dump());System.out.println(f.getName() + "矩阵的标准差:\n" + stddev.createIndexer().getDouble());// System.out.println(f.getName()+"平方根:\n" + norm);}}
}

得到图片标准差的数值后,如何确认标准差阈值,在哪个数字以上算是清晰,哪个数值以下算是模糊,需要依赖于实际应用的业务场景,需要根据使用场景的不同做不同的定制。

除此之外,该算法会存在误杀的情况,如:有些图片可能会故意做个背景模糊或者背景虚化或者该图片很清晰但是线条过于简单。

图片清晰度评价-java实现相关推荐

  1. opencv java图片清晰度_OpenCV 图像清晰度评价(相机自动对焦)

    相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...

  2. java OpenCV 图片清晰度、色偏和亮度检测

    基于OpenCV对图片清晰度.色偏和亮度的检测(java版) 本文链接:https://blog.csdn.net/qq_34997906/article/details/87970817 由来:近期 ...

  3. 基于OpenCV对图片清晰度、色偏和亮度的检测(java版)

    由来:近期项目需要检测图片的亮度和色偏,但网上大多为用C实现的,没有java版本的,此篇为java版本对opencv的调用,谨以此献给CSDN的广大用户. 一. 导入OpenCV所需依赖 依赖下载:O ...

  4. 相机自动对焦 OpenCV 图像清晰度评价

    原文:https://blog.csdn.net/dcrmg/article/details/53543341 OpenCV 图像清晰度评价(相机自动对焦) 版权声明:本文为博主原创文章,转载请注明出 ...

  5. OpenCV 图像清晰度评价算法(相机自动对焦)

    相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...

  6. 嗨,您好 。 。 ! 您如何评价Java / Java EE技能?

    要知道,就是要知道你一无所知. 那就是真正知识的含义. 苏格拉底 这篇文章旨在为读者提供Java生态系统及其技术堆栈的快速概述. 老实说,从Java EE 7,Java SE 8到Java Embed ...

  7. 图像清晰度评价15种方法对比

    在无参考图像的质量评价中,图像的清晰度是衡量图像质量优劣的重要指标,它能够较好的与人的主观感受相对应,图像的清晰度不高表现出图像的模糊.本文针对无参考图像质量评价应用,对目前几种较为常用的.具有代表性 ...

  8. 无参考图像的清晰度评价方法

    在无参考图像的质量评价中,图像的清晰度是衡量图像质量优劣的重要指标,它能够较好的与人的主观感受相对应,图像的清晰度不高表现出图像的模糊.本文针对无参考图像质量评价应用,对目前几种较为常用的.具有代表性 ...

  9. 基于强边缘有效性统计的图像清晰度评价

    摘要 图像清晰度评价是图像质量评价中的一个重要组成部分,对于自动对焦.图像压缩.视频封面提取等应用具有重要意义.目前图像清晰度评价可分为有参考图像清晰度评价和无参考图像清晰度评价[1]. 对于无参考清 ...

最新文章

  1. python 视频 灰度 伽玛_Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换...
  2. 51Nod 1453 抽彩球
  3. java 泛型的几点备忘
  4. FreeRTOS任务优先级说明
  5. hibernate4整合spring3.1出现java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider
  6. 2021华为杯建模---总结
  7. jupyter notebook 中添加 Julia kernel
  8. php+select为空,SELECT时候,如何处理某字段空值?
  9. 正则表达式(模拟网络爬虫、网络蜘蛛)
  10. 基于Python的拉勾网的模拟登录获取cookie
  11. C语言编程>第八周 ③ 请编写一个函数void fun(char orig[],char result[],int flg),其功能是:删除一个字符串中指定下标的字符。其中,orig指向……
  12. 各个小组对“躲避小球”游戏的评价
  13. 图书管理系统课设报告(含用例图、通信图、顺序图、状态图、活动图)
  14. OSChina 周二乱弹 —— 对!公交车绝缘体
  15. TF-IDF算法类毕业论文文献有哪些?
  16. 2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案
  17. 【解纠缠表示:图像增强】
  18. Java连接MySQL数据库并进行简单查询
  19. Open3d学习计划——2(使用帮助与IO)
  20. js数组的5种查询方式——find(),findIndex(),indexOf(),lastIndexOf(),include()

热门文章

  1. 周杰伦入局元宇宙,带你搞懂元宇宙怎么玩
  2. DOTS介绍+Unity DOTS-MAN小游戏项目实战
  3. 蓝桥杯web:7.【数据交互】天气预报查询
  4. android小游戏源码拼图,android编写的数字拼图游戏(带详细注释)
  5. matching wildcard is strict, but no declaration can be found for element forcontext:property-plac
  6. 鸿蒙系统 美的,美的九阳搭载鸿蒙系统的家电上市了,这手机系统上市真的稳了...
  7. 计算机内存的安装方法,内存条怎么装?内存条安装与拆卸方法
  8. 数据的处理之工具推荐(MATLAB、Python、Panoply、CDO、NCL)
  9. 成就感和尊严,给你快乐
  10. 华三交换机模拟器下载、安装、配置、使用填坑