当前位置: 首页 > news >正文

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

 

 

转载于:https://www.cnblogs.com/attilax/p/6032251.html

相关文章:

  • (BFS)hdoj2377-Bus Pass
  • 最少交换次数
  • 团队作业三之问题解答
  • srand()、rand()、time()函数的用法
  • 更改pip源至国内镜像,显著提升下载速度(转载)
  • 如何用distinct消除重复记录的同时又能选取多个字段值?
  • JavaScript之继承(原型链)
  • 21、JavaScript加强
  • linux uart驱动——相关数据结构以及API(二)
  • 放课后的约定
  • Matlab Tricks(二十)—— Hilbert matrix 的创建
  • php面向对象
  • require.js与sea.js的区别
  • 11-13
  • Discuz! 6.x/7.x 全局变量防御绕过导致命令执行
  • 时间复杂度分析经典问题——最大子序列和
  • 自己简单写的 事件订阅机制
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Android Studio:GIT提交项目到远程仓库
  • E-HPC支持多队列管理和自动伸缩
  • Python - 闭包Closure
  • Python 反序列化安全问题(二)
  • SwizzleMethod 黑魔法
  • 大快搜索数据爬虫技术实例安装教学篇
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 工作手记之html2canvas使用概述
  • 聊聊directory traversal attack
  • 爬虫模拟登陆 SegmentFault
  • 如何编写一个可升级的智能合约
  • 我的zsh配置, 2019最新方案
  • 学习Vue.js的五个小例子
  • 《码出高效》学习笔记与书中错误记录
  • NLPIR智能语义技术让大数据挖掘更简单
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #pragma once与条件编译
  • (1)(1.13) SiK无线电高级配置(六)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (南京观海微电子)——I3C协议介绍
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)程序员疫苗:代码注入
  • .NET4.0并行计算技术基础(1)
  • .NET正则基础之——正则委托
  • .NET中的Exception处理(C#)
  • @SentinelResource详解
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [C++]C++类基本语法
  • [docker]docker网络-直接路由模式
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能