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://www.cnblogs.com/attilax/

Atiend

 

 

posted @ 2016-11-05 01:11  attilaxAti  阅读(1097)  评论(0编辑  收藏  举报