资讯专栏INFORMATION COLUMN

用 Python 鉴别色色的图片

YancyYe / 2501人阅读

摘要:代码识别少量图片先导入这个库我也很奇怪为什么的是再写出代码代码运行的结果居然是让我们来看一下图片。说明识别是不是色色的图片的有依据的,根据给出的信息来看,是皮肤暴露的百分比来判断的,暴露的比例大于就判断为色色的图片。

0 前言

实话实说啊,这个标题起得就有点标题党,识别是识别,准确率就有点玄学了。

1 环境说明

Win10 系统下 Python3,编译器是 Pycharm,需要安装 nonude 这个库。

Pycharm 安装第三方库的方法。

2 代码 2.1 识别少量图片

先导入 nonude 这个库(我也很奇怪为什么 import 的是 nude)

import nude

再写出代码

print(nude.is_nude("godfather.jpg"))
print(nude.is_nude("leisheng.jpg"))
print(nude.is_nude("qiaoba.png"))

代码运行的结果居然是 False、True、True
让我们来看一下图片。



对了,我这里是直接把图片放在了项目的路径里的

如果不喜欢这样,可以换一个写法

import nude
print(nude.is_nude("E:/Images/OOXX/00mitai.jpg"))
print(nude.is_nude("E:ImagesOOXX/00zkted.jpg"))
print(nude.is_nude("E:/ImagesOOXX/011idk8.jpg"))

代码运行的结果是 False、True、False

说一下,路径里面的斜杠 / 可以是反斜杠 ,如果后面有数字的话,请使用斜杠 /,不要用反斜杠 。

2.2 识别文件夹中的图片

先导入要用的库

import glob
import itertools
from nude import Nude

这里用 glob 返回匹配指定模式的文件名

images_format = ["jpg", "png", "gif"]  # 图片格式
images_jpg = glob.glob("E:/Images/OOXX/*.jpg")  # 返回匹配指定模式的文件名
images_png = glob.glob("E:/Images/OOXX/*.png")
images_gif = glob.glob("E:/Images/OOXX/*.gif")

itertools.chain 把迭代对象串联起来,形成一个更大的迭代器,说白了就是把 images_jpg、images_png、images_gif 弄在一起,变成了images_list。

然后进行循环,在 images_list 里面一个一个对图片进行识别。

images_list = itertools.chain(images_jpg, images_png, images_gif)

for i in images_list:
    print(i)  # 输出照片的路径
    n = Nude(i)  # 对图片进行识别
    n.parse()
    print(n.result)  # 输出结果
    print(n.message)  # 输出判断信息
    print(n.inspect())  # 输出更加详细的判断信息

运行结果如下图

我们来看一下下图片,准确率嘛,有点玄学。

3 说明

识别是不是色色的图片的有依据的,根据给出的信息来看,是皮肤暴露的百分比来判断的,暴露的比例大于 15% 就判断为色色的图片。这里只是很粗浅的说明,还有一些我没有看懂。

nonude 的 GitHub 链接:https://github.com/gearsystems/nonude/

nonude 的最近一次更新是两年前了,感觉有点可惜,希望作者能继续维护。

文章首发于本人公众号,欢迎关注~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41736.html

相关文章

  • Python完成简单鉴别数百个物流单号

      在我们要寄出去许多快递包裹时,为了能及时沟通物流详情,要迅速将物流单号分离出来。这时候用手动式去鉴别确实太麻烦了,因此本文用Python完成简单鉴别数百个物流单号,所需的可以了解一下  小伙伴们好,我是大五  这也是Python改变未来系列第三篇,是一个和你们相关的难题实例。  前情提要  掌握我的好朋友很有可能都清楚,阿浩常给大伙儿送书。近一年,算不上协同抽奖活动送书,独立我自买+出版社出版...

    89542767 评论0 收藏0
  • Python爬虫学习:微信、知乎、新浪等主流网站模拟登陆爬取方法

    摘要:微信知乎新浪等主流网站的模拟登陆爬取方法摘要微信知乎新浪等主流网站的模拟登陆爬取方法。先说说很难爬的知乎,假如我们想爬取知乎主页的内容,就必须要先登陆才能爬,不然看不到这个界面。图片描述知乎需要手机号才能注册登陆。 微信、知乎、新浪等主流网站的模拟登陆爬取方法摘要:微信、知乎、新浪等主流网站的模拟登陆爬取方法。 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样。从是...

    Kahn 评论0 收藏0
  • 从自编码器到生成对抗网络:一文纵览无监督学习研究现状

    摘要:就在最近,这项技术在流行地无监督学习数据集上实现了非常好的结果。虽然这项工作并不针对无监督学习,但是它可以用作无监督学习。利用替代类别的无监督学习视觉表征使用图像不行来创建非常大的替代类。 如今深度学习模型都需要在大规模的监督数据集上训练。这意味着对于每一个数据,都会有一个与之对应的标签。在很流行的 ImageNet 数据集中,其共有一百万张带人工标注的图片,即 1000 类中的每一类都有 ...

    MageekChiu 评论0 收藏0
  • 最新StarGAN对抗生成网络实现多领域图像变换

    摘要:第一列和第六列显示输入图像,其余列是产生的图像。然而,现有的模型在多域图像转换任务中效率低下。该图表示连接多个域的拓扑图。在训练过程中,随机生成目标域标签并训练模型,以便灵活地将输入图像转换到目标域。 图像到图像转化的任务是将一个给定图像的特定方面改变到另一个方面,例如,将一个人的面部表情从微笑到皱眉改变(见图1)。自从生成对抗网络(GANs)的引入,这个任务经历了很大的发展,从改变发色,改...

    fevin 评论0 收藏0

发表评论

0条评论

YancyYe

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<