如何使用 Python 图像库 (PIL) 识别非照片或“无趣”图像

2023-11-22

我有数千张图像,我需要剔除那些不是照片或其他“有趣”的图像。

例如,“无趣”的图像可能全部是一种颜色,或者大部分是一种颜色,或者是简单的图标/徽标。

该解决方案不必是完美的,只要足以删除最不有趣的图像即可。

到目前为止,我最好的想法是对像素进行随机采样,然后......对它们做一些事情。


丹菲抢先了我。这是我计算图像熵的方法:

import Image
from math import log

def get_histogram_dispersion(histogram):
    log2 = lambda x:log(x)/log(2)

    total = len(histogram)
    counts = {}
    for item in histogram:
        counts.setdefault(item,0)
        counts[item]+=1

    ent = 0
    for i in counts:
        p = float(counts[i])/total
        ent-=p*log2(p)
    return -ent*log2(1/ent)


im = Image.open('test.png')
h = im.histogram()
print get_histogram_dispersion(h)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python 图像库 (PIL) 识别非照片或“无趣”图像 的相关文章

  • xlrd.biffh.XLRDError:Excel xlsx 文件;不支持[重复]

    这个问题在这里已经有答案了 我正在尝试使用读取启用宏的 Excel 工作表pandas read excel与 xlrd 库 它在本地运行良好 但是当我尝试将其推送到 PCF 时 我收到此错误 2020 12 11T21 09 53 441
  • 如何使用 pyinstaller 包含文件?

    我也使用 tkinter 使用 python 3 7 编写了一个程序 由于我使用的是外部图片 因此当我将所有内容编译为一个 exe 时 我需要包含它们 我试过做 add data bg png files 但我仍然收到此错误 tkinter
  • Python有条件求解时滞微分方程

    我在用dde23 of pydelay包来求解延迟微分方程 我的问题 如何有条件地编写方程 例如目标方程有两个选项 when x gt 1 dx dt 0 25 x t tau 1 0 pow x t tau 10 0 0 1 x othe
  • Python在postgresql表中查找带有单引号符号的字符串

    我需要从 psql 表中查找包含多个单引号的字符串 我当前的解决方案是将单引号替换为双单引号 如下所示 sql query f SELECT exists SELECT 1 FROM table name WHERE my column m
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 为什么我的代码不能根据字典解码加密字符串?

    我有一本字典 其中包含代表字母的键和值 例如一个简单的 DICT CODE b g n a p o x d t y 我收到了一个加密代码 并将该字符串转换为一个列表 其中每个项目都是一个单词 我需要根据字典中的项目来解决它 代码示例是 wo
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • 如何将回溯/sys.exc_info() 值保存在变量中?

    我想将错误名称和回溯详细信息保存到变量中 这是我的尝试 import sys try try print x except Exception ex raise NameError except Exception er print 0 s
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 为什么 smtplib.SMTP().sendmail 不发送 DKIM 签名邮件

    我已经在服务器上设置了 postfix 以及 openDKIM 当我跑步时 echo Testing setup mail s Postfix test my email address 我收到电子邮件 邮件标题中有一个DKIM Signa
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010

随机推荐

  • 是否可以改进 Scala 中部分应用类型的类型推断?

    我正在尝试改进的类型推断traverse 函数在下面的代码中 import scala language higherKinds trait Applicative AF def ap A B a AF A f AF A gt B AF B
  • Firebase 电话身份验证错误:短信代码已过期

    按照文档实现 FireBase 电话身份验证后 我遇到了几个问题 有些号码无法验证 我使用 Airtel 作为我的服务提供商 在日志上 我可以确认代码已发送 但我的手机上尚未收到 D 电话身份验证 onCodeSent AM5PThBss5
  • Internet Explorer 中跨站点请求的访问控制

    我正在尝试从多个域向单个域发出 AJAX 调用来处理该请求 通过在处理服务器上设置标头 在 Firefox 和 Chrome 中启用跨域很容易 header Access Control Allow Origin 但这无助于在 Intern
  • 如何在 JSX 中添加自定义 html 属性

    背后有不同的原因 但我想知道如何简单地向 JSX 中的元素添加自定义属性 编辑 更新以反映 React 16 React 16 原生支持自定义属性 这意味着向元素添加自定义属性现在就像将其添加到render函数 就像这样 render re
  • 是什么导致异常中的递归原因?

    当在调试器中查看 Java 中的异常时 您经常会发现原因是无限递归的 我假设它是无限的 e g Exception1 Caused by gt Exception2 Caused by gt Exception2 Caused by gt
  • linux如何用同一个驱动程序驱动多个网卡?

    我最近在学习linux网络驱动 我想知道如果我的板上有很多相同类型的网卡 内核如何驱动它们 内核是否需要多次加载同一个驱动程序 我认为这是不可能的 insmod不会这样做 那么我怎样才能让所有同类卡同时工作呢 regards 每张卡的状态
  • 只显示 ng-repeat 的第一个元素

    如何仅显示角度中的第一个元素 我在用着ng repeat像这样 div div product price div div 但既然我不重复 那么我不必使用ng repeat 我怎样才能让它只显示第一个 而不必进入 ng repeat 您可能
  • 从 SQL Server 数据库获取“下一个”行并在单个事务中对其进行标记

    我有一个用作队列的 SQL Server 表 它正在由多线程 很快将成为多服务器 应用程序进行处理 我想要一种方法让进程从队列中声明下一行 将其标记为 进程中 而多个线程 或多个服务器 不可能同时声明同一行 有没有办法更新一行中的标志并同时
  • 让 CMake 为 MSVC 构建共享库 [重复]

    这个问题在这里已经有答案了 我一直在使用 CMake 在 Unix 环境中构建 C 和 C 项目 但是 我也想开始在 MSVC 中进行编译 并且我试图了解 cmake 文档 但我遇到了困难 当我尝试构建时 我不断收到以下消息 链接 致命错误
  • 将特定于页面的 Javascript 添加到 CakePHP 中的每个视图

    为了使我的脚本保持可维护性 我将把每个脚本移到自己的文件中 按控制器和操作组织 scripts which only apply to views posts add ctp app webroot js page posts add js
  • 如何让 Ansible 解释变量内的变量?

    每当我尝试让 Ansible 解释嵌套变量 即另一个变量中的变量 时 我都无法获得预期的结果 给定变量 key bar foo bar baz foo bar baz 我尝试过这三种方法 但动态访问密钥的运气不佳bar字典的foo或钥匙fo
  • QueryDSL 窗口函数

    如何使用窗口函数编写查询并选择 QueryDSL 中的所有字段 在文档中有一个这样的例子 query from employee list SQLExpressions rowNumber over partitionBy employee
  • 电子邮件:[Firebase] 客户端对 Cloud Firestore 数据库的访问权限将在 X 天后到期

    我收到一封电子邮件 表明我正在 测试模式 下进行开发 但它使我的数据库完全向互联网开放 我最初接受的默认规则如下所示 rules version 2 service cloud firestore match databases datab
  • Android 位图共享意图 - 是否可以在共享之前不保存它?

    我尝试使用共享意图从我的应用程序导出位图 而不保存临时位置的文件 我找到的所有例子都是两步的 1 保存到SD卡并为该文件创建Uri 2 用这个Uri开始意图 是否可以在不需要 WRITE EXTERNAL STORAGE 权限的情况下保存文
  • CListCtrl:如何保持滚动位置?

    我有一个 CListCtrl 报告样式 我可以在其中清除列表并在某些时间重新填充它 我想在执行此操作时保持垂直滚动位置 我发现有几种看起来很有前途的方法 EnsureVisible GetScrollPos SetScrollPos Get
  • 如何从预处理器宏中识别平台/编译器?

    我正在编写一个跨平台代码 它应该在linux windows Mac OS 上编译 在windows上 我必须支持visual studio和mingw 有一些特定于平台的代码 我应该将其放入 ifdef endif环境 比如这里我放置了w
  • 使用 Azure DevOps 管道的 AzureFileCopy 失败 - “AzCopy.exe 以非零退出退出

    我尝试将 ARM 模板复制到存储但失败 YML 可能出现什么问题 ERROR AzCopy AzCopy exe logout INFO Logout succeeded INFO AzCopy exe A newer version 10
  • 如何解决“资源”参数中的“重复项目”错误

    在处理我的项目时 我遇到了以下错误 在 资源 参数中多次指定了 项 资源 参数不支持重复项目 删除了项目名称 没关系 但是 我不知道如何解决这个问题 在 Visual C Express 中哪里可以找到此参数 我猜 项是一种形式 那么 从最
  • 替换部分超链接

    我需要修改 xls 工作簿中的大量超链接 我的链接是这样的 mysrv001 some path documents doc我需要更换 mysrv001 with mysrv002 我尝试了类似的操作 但收到错误 对象不支持此属性或方法 我
  • 如何使用 Python 图像库 (PIL) 识别非照片或“无趣”图像

    我有数千张图像 我需要剔除那些不是照片或其他 有趣 的图像 例如 无趣 的图像可能全部是一种颜色 或者大部分是一种颜色 或者是简单的图标 徽标 该解决方案不必是完美的 只要足以删除最不有趣的图像即可 到目前为止 我最好的想法是对像素进行随机