Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结

1.1. 原理,主要使用像素模糊后的差别会变小1

1.2. 具体流程1

1.3. 提升性能 可以使用采样法即可。。1

1.4. 实现代码1

1.1. 原理,主要使用像素模糊后的差别会变小

通过计算横向前后俩点像素的差异。。然后累加即可。。

1.2. 具体流程

图片灰度化,这样可以只保留hsv分量了。。。然后读取v分量,就是明亮度了。。

Hs色相和饱和度全部去除了。。   比较v分量的差异即可。。

1.3. 提升性能 可以使用采样法即可。。

1.4. 实现代码

package com.attilax.img;

import java.awt.Color;

import java.awt.image.BufferedImage;

import com.attilax.io.filex;

import com.attilax.json.AtiJson;

import com.jhlabs.image.GrayscaleFilter;

public class DefinTest {

/**

* gray hsv 0,0,218 HSL 表示 hue(色相)、saturation(饱和度)、lightness(亮度),

* HSV表示 hue、saturation、value(色调) 而 HSB 表示 hue、saturation、brightness(明度)。

*

* @param args

*/

public static void main(String[] args) {

String i = "C:\\00clr\\1_gray.jpg";

long dfns = getDefinetionsSum(i);

String blu5 = "C:\\00clr\\2_gray.jpg";

long dfns_blu5 = getDefinetionsSum(blu5);

String blu9 = "C:\\00clr\\blur9_gray.jpg";

long dfns_blu9 = getDefinetionsSum(blu9);

System.out.println("bl0:" + dfns + ",bl5:" + dfns_blu5 + ",bl9:"

+ dfns_blu9);

}

private static long getDefinetionsSum(String i) {

BufferedImage src = imgx.toImg(i);

int sum = 0;

int wid = src.getWidth();

int h = src.getHeight();

for (int w = 0; w < wid; w++)

for (int y = 0; y < h; y++) {

int v = (int) imgx.getHsv(src, w, y).v;

try {

if (y + 1 > (h-1))

continue;

int clr_next = (int) imgx.getHsv(src, w, y + 1).v;

int tsa = Math.abs(v - clr_next);

sum = sum + tsa;

} catch (Exception e) {

System.out.println(e.getMessage()+" w-h:"+w+"-"+y);

}

}

return sum;

}

bl0:2083037,bl5:730898,bl9:600365

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结的更多相关文章

  1. Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理

    Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理 1.1. 图像边缘一般都是通过对图像进行梯度运算来实现的1 1.2. Remark: 1 1.3.  1.失焦检测. 衡量画面模糊的主要方 ...

  2. OpenCV人脸识别LBPH算法源码分析

    1 背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分,人脸检测是在一张图片中把人脸定位出来,完成的是搜寻 ...

  3. OpenCV人脸识别Eigen算法源码分析

    1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...

  4. :OpenCV人脸识别Fisherface算法源码分析

    https://blog.csdn.net/loveliuzz/article/details/73875904

  5. mahout算法源码分析之Collaborative Filtering with ALS-WR (四)评价和推荐

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 首先来总结一下 mahout算法源码分析之Collaborative Filtering with AL ...

  6. mahout算法源码分析之Collaborative Filtering with ALS-WR拓展篇

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 额,好吧,心头的一块石头总算是放下了.关于Collaborative Filtering with AL ...

  7. mahout算法源码分析之Collaborative Filtering with ALS-WR 并行思路

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. mahout算法源码分析之Collaborative Filtering with ALS-WR 这个算 ...

  8. diff.js 列表对比算法 源码分析

    diff.js列表对比算法 源码分析 npm上的代码可以查看 (https://www.npmjs.com/package/list-diff2) 源码如下: /** * * @param {Arra ...

  9. [Spark内核] 第34课:Stage划分和Task最佳位置算法源码彻底解密

    本課主題 Job Stage 划分算法解密 Task 最佳位置算法實現解密 引言 作业调度的划分算法以及 Task 的最佳位置的算法,因为 Stage 的划分是DAGScheduler 工作的核心,这 ...

随机推荐

  1. selenium-pageobject设计模式

    from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom time import sleepfrom ...

  2. nexus2.1.2的配置

    最近在学习maven,逐渐接触到私服的搭建,也就着手学习使用nexus了,在http://www.sonatype.org/nexus/go网站上nexus最新版本的是,不过版本要同jvm的版本匹对, ...

  3. java JFrame修改左上角的图片

    直接案例:

  4. Area区域

    1.mvc4.0新增的area区域机制,可以协助你在架构较为大型的项目,让独立性较高的部分功能独立成一个MVC子网站,以降低网站与网站之间的耦合性,也可以通过area的切割,让多人同时开发同一个项目时 ...

  5. 记录参加“牛津计划.Docker在线黑客松”比赛的过程

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  6. C# interface

    我们学习了interface,即接口,其与抽象类有点像,但是他们也有一些区别,比如类不能多重继承但是接口却可以多重继承. 接口只包含方法.委托或事件和属性的签名(接口包含的成员).不能包含字段(因为字 ...

  7. Python成长笔记 - 基础篇 (九)

    创建一个socketserver 至少分以下几步: First, you must create a request handler class by subclassing the BaseRequ ...

  8. [java基础]文档注释

    转载自:http://blog.163.com/hui_san/blog/static/5710286720104191100389/ 前言 Java 的语法与 C++ 及为相似,那么,你知道 Jav ...

  9. Selenium中的几种等待方式,需特别注意implicitlyWait的用法

    摘:http://blog.csdn.net/pf20050904/article/details/20052485 最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题 ...

  10. 在Windows用Rebar来构建,编译,测试,发布Erlang项目

    rebar是一个遵循 Erlang/OTP 原则的 Erlang 项目构建工具,使用它可以减少构建标准 Erlang/OTP 项目架构配置的工作量,并且可以很容易的编译.测试.发布 Erlang 应用 ...