python用10行代码实现对黄色图片的检测功能
本文实例讲述了python用10行代码实现对黄色图片的检测功能。分享给大家供大家参考。具体如下:
原理:将图片转换为YCbCr模式,在图片中寻找图片色值像素,如果在皮肤色值内的像素面积超过整个画面的1/3,就认为是黄色图片。
申明:简单场景还是够用了,稍微复杂一点就不准确了,例如:整幅画面是人的头像,皮肤色值的像素必然超过50%,被误认为黄色图片就太武断了。
需要安装python图片库PIL支持
porn_detect.py如下:
import sys,PIL.Image as Image
img = Image.open(sys.argv[1]).convert('YCbCr')
w, h = img.size
data = img.getdata()
cnt = 0
for i, ycbcr in enumerate(data):
y, cb, cr = ycbcr
if 86 <= cb <= 117 and 140 <= cr <= 168:
cnt += 1
print '%s %s a porn image.'%(sys.argv[1], 'is' if cnt > w * h * 0.3 else 'is not')
运行:
python porn_detect.py myphoto.png
希望本文所述对大家的Python程序设计有所帮助。
相关推荐
-
用Python实现通过哈希算法检测图片重复的教程
Iconfinder 是一个图标搜索引擎,为设计师.开发者和其他创意工作者提供精美图标,目前托管超过 34 万枚图标,是全球最大的付费图标库.用户也可以在 Iconfinder 的交易板块上传出售原创作品.每个月都有成千上万的图标上传到Iconfinder,同时也伴随而来大量的盗版图.Iconfinder 工程师 Silviu Tantos 在本文中提出一个新颖巧妙的图像查重技术,以杜绝盗版. 我们将在未来几周之内推出一个检测上传图标是否重复的功能.例如,如果用户下载了一个图标然后又试图通过上传
-
Python中请使用isinstance()判断变量类型
一.isinstance() 在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便. 复制代码 代码如下: # coding=utf-8 a = 10 def b(): pass print isinstance(a,(int,str)) print isinstance(a,(float,str)) print isinstance(b,(str,int)) class c:
-
Python检测一个对象是否为字符串类的方法
目的 测试一个对象是否是字符串 方法 Python的字符串的基类是basestring,包括了str和unicode类型.一般可以采用以下方法: 复制代码 代码如下: def isAString(anobj): return isinstance(anobj,basestring) 不过以上方法对于UserString类的实例,无能无力. 复制代码 代码如下: In [30]: b=UserString.UserString('abc') In [31]: isAString(b) Out[31
-
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
本文实例讲述了Python简单检测文本类型的方法.分享给大家供大家参考,具体如下: 1.根据文件头. #是否为带BOM头的UTF8文件 def IsUtf8BomFile(pathfile): if b'\xef\xbb\xbf' == open(pathfile, mode='rb').read(3)): return True return False 2.用cchardet库. >>> import cchardet >>> cchardet.detect(ope
-
Python判断操作系统类型代码分享
经常地我们需要编写跨平台的脚本,但是由于不同的平台的差异性,我们不得不获得当前所工作的平台(操作系统类型). 代码如下: 复制代码 代码如下: import platform def TestPlatform(): print ("----------Operation System--------------------------") #Windows will be : (32bit, WindowsPE) #Linux will be : (32bit,
-
Python isinstance判断对象类型
复制代码 代码如下: if (typeof(objA) == typeof(String)) { //TODO } 在Python中只需要使用内置的函数isinstance,使用起来非常简单,比如下面的例子: 复制代码 代码如下: class objA: pass A = objA() B = 'a','v' C = 'a string' print isinstance(A, objA) print isinstance(B, tuple) print isinstance(C, basest
-
python结合opencv实现人脸检测与跟踪
模式识别课上老师留了个实验,在VC++环境下利用OpenCV库编程实现人脸检测与跟踪. 然后就开始下载opencv和vs2012,再然后,配置了好几次还是配置不成功,这里不得不吐槽下微软,软件做这么大,这么难用真的好吗? 于是就尝试了一下使用python完成实验任务,大概过程就是这样子的: 首先,配置运行环境: 下载opencv和python的比较新的版本,推荐opencv2.4.X和python2.7.X. 直接去官网下载就ok了,python安装时一路next就行,下载的opencv.exe
-
python 判断自定义对象类型
要判断自定义对象的类型,用__class__方法,或者用isinstance(object, class-or-type-or-tuple)-->bool 用__class__不能认出子类实例也是父类的实例,用isinstance可以认出子类实例也是父类的实例
-
python通过文件头判断文件类型
对于提供上传的服务器,需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,避免不必要的麻烦. 分享代码如下 import struct # 支持文件类型 # 用16进制字符串的目的是可以知道文件头是多少字节 # 各种文件头的长度不一样,少半2字符,长则8字符 def typeList(): return { "52617221": EXT_RAR, "504B0304": EXT_ZIP} # 字节码转16进制字符串 def byt
-
python检测是文件还是目录的方法
本文实例讲述了python检测是文件还是目录的方法.分享给大家供大家参考.具体实现方法如下: import os if os.path.isdir(path): print "it's a directory" elif os.path.isfile(path): print "it's a normal file" else: print "it's a special file (socket, FIFO, device file)" 希望本
随机推荐
- Yii2.0实现生成二维码功能实例
- MySQL数据文件存储位置的查看方法
- AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
- Vue.js学习笔记之修饰符详解
- 浅谈IIS安全配置
- 使用 Iisftpdr.vbs 删除FTP虚拟目录(支持本地与远程)
- Java动态代理分析及理解
- 修改ThinkPHP缓存为Memcache的方法
- 在Django的通用视图中处理Context的方法
- Python中字典的基础知识归纳小结
- asp 删除数据库记录的代码
- 对于Python的框架中一些会话程序的管理
- DropDownList控件绑定数据源的三种方法
- 一个可以修复 IE浏览器的批处理文件
- SQLSERVER查询所有数据库名,表名,和字段名的语句
- 基于jquery的选择标签至文本域效果,可多选/可过滤重复/可限制个数的实现代码
- java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体
- nodejs中的fiber(纤程)库详解
- Linux FTP服务器配置第1/2页
- Android编程实现拍照功能的2种方法分析
