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


    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表示 huesaturationvalue(色调) HSB 表示 huesaturationbrightness(明度)。

     *

     * @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://blog.csdn.net/attilax

    Atiend

     

  • 相关阅读:
    Java知识15 Number&Math类【多测师】
    python callable()方法实例
    高级super实例
    高级any、for组合用法
    python 字典update、setdefault、pop方法案例
    一个经典的python字典生成式案例
    一个发挥到极致的yield案例
    python map使用
    Python yield详解
    django __path__使用
  • 原文地址:https://www.cnblogs.com/attilax/p/15198334.html
Copyright © 2020-2023  润新知