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判断操作系统类型代码分享
经常地我们需要编写跨平台的脚本,但是由于不同的平台的差异性,我们不得不获得当前所工作的平台(操作系统类型). 代码如下: 复制代码 代码如下: import platform def TestPlatform(): print ("----------Operation System--------------------------") #Windows will be : (32bit, WindowsPE) #Linux will be : (32bit,
-
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检测一个对象是否为字符串类的方法
目的 测试一个对象是否是字符串 方法 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检测是文件还是目录的方法
本文实例讲述了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)" 希望本
-
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实现通过哈希算法检测图片重复的教程
Iconfinder 是一个图标搜索引擎,为设计师.开发者和其他创意工作者提供精美图标,目前托管超过 34 万枚图标,是全球最大的付费图标库.用户也可以在 Iconfinder 的交易板块上传出售原创作品.每个月都有成千上万的图标上传到Iconfinder,同时也伴随而来大量的盗版图.Iconfinder 工程师 Silviu Tantos 在本文中提出一个新颖巧妙的图像查重技术,以杜绝盗版. 我们将在未来几周之内推出一个检测上传图标是否重复的功能.例如,如果用户下载了一个图标然后又试图通过上传
-
python结合opencv实现人脸检测与跟踪
模式识别课上老师留了个实验,在VC++环境下利用OpenCV库编程实现人脸检测与跟踪. 然后就开始下载opencv和vs2012,再然后,配置了好几次还是配置不成功,这里不得不吐槽下微软,软件做这么大,这么难用真的好吗? 于是就尝试了一下使用python完成实验任务,大概过程就是这样子的: 首先,配置运行环境: 下载opencv和python的比较新的版本,推荐opencv2.4.X和python2.7.X. 直接去官网下载就ok了,python安装时一路next就行,下载的opencv.exe
-
python通过文件头判断文件类型
对于提供上传的服务器,需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,避免不必要的麻烦. 分享代码如下 import struct # 支持文件类型 # 用16进制字符串的目的是可以知道文件头是多少字节 # 各种文件头的长度不一样,少半2字符,长则8字符 def typeList(): return { "52617221": EXT_RAR, "504B0304": EXT_ZIP} # 字节码转16进制字符串 def byt
-
python 判断自定义对象类型
要判断自定义对象的类型,用__class__方法,或者用isinstance(object, class-or-type-or-tuple)-->bool 用__class__不能认出子类实例也是父类的实例,用isinstance可以认出子类实例也是父类的实例
-
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:
随机推荐
- MySQL主从复制的原理及配置方法(比较详细)
- 浏览器中的正则表达式陷阱说明
- destoon供应信息title调用出公司名称的方法
- editplus EmEditor和searchandreplace正则表达式
- JS网络游戏-(模拟城市webgame)提供的一些例子下载
- Django框架中render_to_response()函数的使用方法
- javascript中this做事件参数相关问题解答
- vbs实现计算机重启
- Win10下安装Sql Server 2014反复提示需安装.NET Framework 3.5 SP1的解决方案
- Js 控制表单域代码
- js实现自定义进度条效果
- 从千千静听歌词服务器获取lrc歌词示例分享
- maven中下载jar包源码和javadoc的命令介绍
- Android6.0来电号码与电话薄联系人进行匹配
- Android编程设置屏幕亮度的方法
- thinkPHP中session()方法用法详解
- 理解C#生成验证码的过程
- centos mysql 修改数据库目录
- Android开发实现的内存管理工具类
- Android实现ViewPage轮播图效果