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:[email protected]

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

Atiend

时间: 2024-10-07 06:06:56

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

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

1.1. 图像边缘一般都是通过对图像进行梯度运算来实现的1 1.2. Remark: 1 1.3.  1.失焦检测. 衡量画面模糊的主要方法就是梯度的统计特征,通常梯度值越高,画面的边缘信息越丰富,图像越清晰.1 1.4. 利用边缘检测 ,模糊图片边缘会较少2 1.5. 通过dct比较.Dct分离出的低频信号比较2 1.6. 参考资料2 1.1. 图像边缘一般都是通过对图像进行梯度运算来实现的 1.2. Remark:   1)肉眼可以分辨以上五幅图像的质量排名为:img42 > img81 >

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

1 背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分,人脸检测是在一张图片中把人脸定位出来,完成的是搜寻的功能.从OpenCV2.4开始,加入了新的类FaceRecognizer,该类用于人脸识别,使用它可以方便地进行相关识别实验. 原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于或等于中心像素值,则该像素点的位置被标记为1,否则为0

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

1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本集合的各个样本点到均值的距离之平均.以一个国家国民收入为例,均值反映了平均收入,而均方差/方差则反映了贫富差距,如果两个国家国民收入均值相等,则标准差越大说明国家的国民收入越不均衡,贫富差距较大.以上公式都是用来描述一维数据量的,把方差公式推广到二维,则可得到协方差公式: 协方差表明了两个随机变量之

机器学习Spark Mllib算法源码及实战详解进阶与提高视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

[Spark传奇行动] 第34课:Stage划分和Task最佳位置算法源码彻底解密

本課主題 Job Stage 划分算法解密 Task 最佳位置算法實現解密 引言 作业调度的划分算法以及 Task 的最佳位置的算法,因为 Stage 的划分是DAGScheduler 工作的核心,这也是关系到整个作业有集群中该怎么运行:其次就是数据本地性,Spark 一舨的代码都是链式表达的,这就让一个任务什么时候划分成 Stage,在大数据世界要追求最大化的数据本地性,所有最大化的数据本地性就是在数据计算的时候,数据就在内存中.最后就是 Spark 的实现算法时候的略的怎么样.希望这篇文章能

【141029】VC游戏编写中的求解最短路径算法源码

VC游戏编写中的求解最短路径算法源码,本示例是自动寻径演示,篮点是起点,红点是终点,按确定键开始.源码爱好者注:编译后运行的时候请把EXE文件从Debug目录中拷贝到项目根目录中,若不然会出错. 编著.程序设计:唐明理 程序顺序: 初始化队列.待处理节点入队列, 依靠对目的地估价距离插入排序,将离目的地估计最近的方案出队列,释放栈顶节点,释放申请过的所有节点,估价函数,估价 x,y 到目的地的距离,估计值必须保证比实际值小, 尝试下一步移动到 x,y 可行否,如果曾经有更好的方案移动到 (x,y

冒泡排序(算法源码)

算法源码: //BubbleSort.cpp #include <iostream>using namespace std; void BubbleSort(int a[], int n){ for(int i=n-1;i>0;i--) {for(int j=0;j<i;j++) { if (a[j]>a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } }}int main(){ int a[]={4,3,6,

基于新唐M0的XXTEA加密解密算法源码

源:基于新唐M0的XXTEA加密解密算法源码 /*--------------------------------------------------------------------------------------------------------- 在数据的加解密领域,算法分为对称密钥与非对称密钥两种.对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相 同的.对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全性能佳,在数字签名领域得到广 泛的应用.

基于单层决策树的AdaBoost算法源码

基于单层决策树的AdaBoost算法源码 Mian.py 1 # -*- coding: utf-8 -*- 2 # coding: UTF-8 3 4 import numpy as np 5 from AdaBoost import AdaBoost 6 from sklearn.model_selection import train_test_split 7 from sklearn.metrics import accuracy_score 8 9 def main(): 10 11