機器學(xué)習(xí)(3)

雖說是剛剛學(xué)習(xí)機器學(xué)習(xí)戴卜,但還是編寫了一個小小的代碼,可能有不足之處琢岩,請指出與諒解投剥。

這個代碼是手勢識別必不可少的一步,大致內(nèi)容就是將一張手的圖片轉(zhuǎn)化為黑白照片担孔,再轉(zhuǎn)化為模糊的黑白照片江锨,最后化為只有手的輪廓(黑)和背景顏色(白),代碼如下:

# -*- coding:utf-8 -*-

from PIL import Image, ImageFilter

import numpy as np

def f(c):

r, g, b = c

return int(float(r)*0.21 + float(g)*0.72 + float(b)*0.07)

def ff(c):

r, g, b = c

return (r+g+b)/3

# stage 1: convert 2 gray

def rgb2gray(im):

w, h = im.size

ret = Image.new("L",(w,h))

for i in range(w):

for j in range(h):

ret.putpixel([i,j],f(im.getpixel((i, j))))

return ret

# stage 2: Gaussian Blur

def GaussianBlur(im):

ftr = ImageFilter.GaussianBlur(22.0)

new_im = im.filter(ftr)

return new_im

def OTSU(im):

w, h = im.size

arr = []

total = 0

points = w*h

for i in range(w):

for j in range(h):

c = im.getpixel((i,j))

arr.append(c)

total += c

# 顏色為x的點一共有d[x]個

d = {}

for i in range(256):

d[i] = 0

for i in arr:

d[i] += 1

# 顏色為0的點糕篇,到顏色為x的點啄育,一共有count[x]個

# count[x] = d[0] + d[1] + ... + d[x]

count = []; count.append(d[0])

# 顏色小于等于x的點的加權(quán)和為color[x]

# color[x] = 0*d[0] + 1*d[1] + ... + x*d[x]

color = []; color.append(0)

for i in range(1, 256): # i = 1 to 255

#print i

count.append(count[i-1] + d[i])

color.append(color[i-1] + d[i]*i)

"""

print "-"*40

print count

print "-"*40

print color

"""

"""

c 為分界的顏色的灰度值

w1 = d[0] + d[1] + ... + d[c] = count[c]

w2 = d[c+1] + d[c+2] + ... + d[255]

= (d[1] + d[2] + ... + d[255]) - w1

= (w * h) - w1

u1 = (d[0]*0 + d[1]*1 + ... + d[c]*c) / (d[0] + d[1] + ... + d[c])

= color[c] / w1

u2 = (d[c+1]*(c+1) + d[c+2]*(c+2) + ... + d[255]*255) / (d[c+1] + d[c+2] + ... + d[255])

= (d[0]*0 + d[1]*1 + ... + d[255]*255? -? color[c]) / w2

= (color[255] - color[c]) / w2

求c的值使得

delta = w1*w2*((u1-u2)**2)最大

"""

maxDelta = 0.0

gray = 0

for c in range(256):

w1 = count[c]

w2 = points - w1

if w1 == 0 or w2 == 0:

continue

u1 = float(color[c]) / w1

u2 = float(color[255] - color[c]) / w2

delta = w1*w2*((u1-u2)**2)

print "[w1] ", w1, "[u1] ", u1,

print "[w2] ", w2, "[u2] ", u2,

print "\t", delta, "\t", maxDelta,

if delta > maxDelta:

maxDelta = delta

gray = c

print " BINGO! ", gray

else:

print ""

return gray

def threshold(t, image):

# 二值化

intensity_array = []

w,h = image.size

for i in range(w):

for j in range(h):

intensity = image.getpixel((i,j))

if (intensity <= t):

x = 0

else:

x = 255

image.putpixel([i, j], x)

return image

#####################################################

# 程序執(zhí)行過程

#####################################################

# 轉(zhuǎn)換成黑白

im = Image.open('hand.jpg')

im = rgb2gray(im)

im.save("gray.jpg")

# 進行模糊

im = GaussianBlur(im)

im.save("Gaussian.jpg")

# 求二值化的分界點

g = OTSU(im)

print g

# 使用分界點進行二值化

im = threshold(g, im)

im.save("OTSU.jpg")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拌消,隨后出現(xiàn)的幾起案子挑豌,更是在濱河造成了極大的恐慌,老刑警劉巖墩崩,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氓英,死亡現(xiàn)場離奇詭異,居然都是意外死亡泰鸡,警方通過查閱死者的電腦和手機债蓝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門壳鹤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盛龄,“玉大人,你說我怎么就攤上這事∮嗖埃” “怎么了啊鸭?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匿值。 經(jīng)常有香客問我赠制,道長,這世上最難降的妖魔是什么挟憔? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任钟些,我火速辦了婚禮,結(jié)果婚禮上绊谭,老公的妹妹穿的比我還像新娘政恍。我一直安慰自己,他們只是感情好达传,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布篙耗。 她就那樣靜靜地躺著,像睡著了一般宪赶。 火紅的嫁衣襯著肌膚如雪宗弯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天搂妻,我揣著相機與錄音蒙保,去河邊找鬼。 笑死欲主,一個胖子當(dāng)著我的面吹牛追他,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岛蚤,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼邑狸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涤妒?” 一聲冷哼從身側(cè)響起单雾,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎她紫,沒想到半個月后硅堆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡贿讹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年渐逃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片民褂。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡茄菊,死狀恐怖疯潭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情面殖,我是刑警寧澤竖哩,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站脊僚,受9級特大地震影響相叁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辽幌,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一增淹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乌企,春花似錦埠通、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至虽画,卻和暖如春舞蔽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背码撰。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工渗柿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脖岛。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓朵栖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柴梆。 傳聞我的和親對象是個殘疾皇子陨溅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容