1
我正在看的問題是,我想用相當合理的確定性水平檢測圖像是黑色還是大多數黑色。我已經寫了代碼來獲取顏色直方圖,下一步是編寫一個函數,它將採用(r,g,b)
元組,並給我一個bool
指示它是黑色還是接近它。這可能不是100%準確,但最好是誤報誤報。如何訓練python函數以返回我想要的結果?
def average_image_color(i):
h = i.histogram()
# split into red, green, blue
r = h[0:256]
g = h[256:256*2]
b = h[256*2: 256*3]
# perform the weighted average of each channel:
# the *index* is the channel value, and the *value* is its weight
return (
sum(i*w for i, w in enumerate(r))/sum(r),
sum(i*w for i, w in enumerate(g))/sum(g),
sum(i*w for i, w in enumerate(b))/sum(b))
我有一組測試圖像,可以用作語料庫。什麼是最好的圖書館/方法呢?
我會希望培訓會由於您只關注亮度,如果轉換的圖像灰度,所以您只需一起工作會更容易些像
def is_black(r, g, b):
if magic_says_black():
return True
return False
請參閱http://en.wikipedia.org/wiki/Supervised_learning和http://en.wikipedia.org/wiki/Unsupervised_learning。你可能想用某種控制數據來監督它,在這種情況下,您只需量化「黑色」是什麼以及您真正想要的寬容程度。 – mdscruggs
考慮到這個問題的定義如此明確且易於理解,只需手工製作一個可以手工完成的算法就可能會更好。例如,如果所有的值都很高,並且它們之間的差異很小,那麼返回true。 – placeybordeaux
另請參閱http://scikit-learn.org/stable/ – mdscruggs