pythonで出来たらいいこと


出された案は2種類


「前髪の状態の良し悪しを判断してくれるカメラ機能」
「気温を入力することで、洋服を判断してくれる機能」
私は前者について調べを進めた。


pythonでカメラ機能


前髪の状態を判断する手順を考える。
自身の写真を撮り、それを事前に設定していた長さとどれくらい近い状態かを判断してもらう。
もしくは、理想の前髪の写真と自身の写真を比較してもらう。


カメラ機能の処理手順の考察


顔と前髪の区別をどうすればいいのか。

一番単純な「明暗」での区別を提案する。
以下、明暗で識別するpythonのコード


  1. from cv2 import *
  2. from numpy import array, where, ones_like
  3. from matplotlib import pyplot
  4.  
  5.  
  6. ## カラーで読み込んだ画像をcvtColorを用いてhsvに変更 ##
  7. img_cl = imread('tapioca_drink.png', 6)
  8. img_hsv = cvtColor(img_cl, COLOR_BGR2HSV)
  9.  
  10. ## 赤色の範囲を定義 ##
  11. hsv_min = array([150, 64, 0])
  12. hsv_max = array([180, 255, 255])
  13.  
  14. ## 赤色をマスクする ##
  15. mask = inRange(img_hsv, hsv_min, hsv_max)
  16. mask = bitwise_not(mask)
  17. img_hsv = bitwise_and(img_hsv, img_hsv, mask = mask)
  18.  
  19. ## 背景の黒い部分などを白くする ##
  20. img_hsv[:, :, 2] = where(img_hsv[:, :, 2] < 10, 255 * ones_like(img_hsv[:, :, 2]), img_hsv[:, :, 2])
  21.  
  22. ## HSVからBGRを経由して白黒に変更する ##
  23. img_bgr = cvtColor(img_hsv, COLOR_HSV2BGR)
  24. img_bw = cvtColor(img_bgr, COLOR_BGR2GRAY)
  25.  
  26. ## ごみを取るためのブラシ処理 ##
  27. img_bw_b = blur(img_bw, (3, 3))
  28.  
  29. ## 暗い部分のみ残してみる ##
  30. img_bw_b = where(img_bw_b < 90, 255, 0)
  31. pyplot.imshow(img_bw_b)


反省


そもそも終わっていない。
今回は黒髪(暗い色の髪)を前提にしてしまった。これでは肌との識別が難しくなる。
「では、何で識別すれば良いか」の案がまだ出ていない。
今後もプログラミングの変更を加えていく。


デザイン演習Ⅰ・Ⅱトップページ