IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【python脚本】按照清晰度对图片进行分类 -> 正文阅读

[人工智能]【python脚本】按照清晰度对图片进行分类

作者:recommend-item-box type_blog clearfix

目录

原理

在《Analysis of focus measure operators for shape-from-focus》[2013 Pertuz et al.]。在这篇文献中,Pertuz 等人论述了近 36 种不同的图片清晰度评价(focus measure)方法。其中一种方式比较简单,就是使用拉普拉斯方差算法,直接得到一个浮点数方差表征清晰度。事先设定一个阈值,如果某图片的清晰度低于预先定义的阈值,那么该图片就可以被认为是模糊的。高于阈值,就不是模糊的,或者说是清晰的。
此算法基于以下假设:如果图片具有较高方差,那么它就有较广的频响范围,代表着正常,聚焦准确的图片。
总结:正常图像中边界清晰,经拉普拉斯计算后方差较大;模糊图像边界信息少,方差小

代码:

import os
import cv2
import shutil

# 计算图片清晰度
def getImageVar(img):
    res=0
    for i in cv2.split(img):
        # 对图片用 3x3 拉普拉斯算子做卷积得到边缘  计算出方差,并最后返回。
        # 函数求完导数后会有负值,还有会大于255的值。而原图像是uint8,即8位无符号数,所以建立的图像位数不够,会有截断。因此要使用64位有符号的数据类型,即 cv2.CV_64F。
        # 再用var函数求方差
        res+=cv2.Laplacian(i, cv2.CV_64F).var()
    return res/3

# 读取某个文件夹下面的所有文件名 返回list
def get_all_file(path):
    all_file=[]
    for i in os.listdir(path):
        file_name=os.path.join(path,i)
        all_file.append(file_name)
    return all_file


input_path=input("请输出目标文件夹:")
threshold=int(input("请输入清晰度阈值:"))


orign_path=os.path.join(os.path.abspath('.'),'img')
resoure_file_path = os.path.join(orign_path, input_path)  # 图片所在文件夹
vage_file_path=os.path.join(orign_path,'vague')
clear_file_path=os.path.join(orign_path,'clear')
if not os.path.exists(vage_file_path):
        os.mkdir(vage_file_path)
if not os.path.exists(clear_file_path):
        os.mkdir(clear_file_path)

all_img_path=get_all_file(resoure_file_path)
for img_path in all_img_path:
    img_name=img_path.split('\\')[-1]
    dst=os.path.join(vage_file_path,img_name)
    if getImageVar(cv2.imread(img_path))>threshold:
        dst = os.path.join(clear_file_path, img_name)
    shutil.copyfile(img_path, dst)

打包成exe:

pyinstaller -F work.py

使用

首先准备一个img文件夹和img_cls.exe
在这里插入图片描述
img文件夹中包含存放需要分类的图片的文件夹自定义(如test_img)以及将来的两个结果文件夹vagueclear
在这里插入图片描述
双击执行exe文件,输入自定义和清晰度门限(高于阈值是清晰,低于阈值是模糊)
在这里插入图片描述
结束之后得到:两个分类文件夹(复制过来的 原图片没动)
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:27:02  更:2022-05-11 16:27:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:50:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码