python用10行代碼實現黃色圖片檢測

原理:將圖片轉換爲YCbCr模式,在圖片中尋找圖片色值像素,若是在皮膚色值內的像素面積超過整個畫面的1/3,就認爲是黃色圖片。 python

申明:簡單場景仍是夠用了,稍微複雜一點就不許確了,例如:整幅畫面是人的頭像,皮膚色值的像素必然超過50%,被誤認爲黃色圖片就太武斷了。 shell

須要安裝python圖片庫PIL支持 code

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
相關文章
相關標籤/搜索