1

目の重心を取得し、目の動きを追跡して車椅子を制御するコードを実装しようとしています。画像に適用されるコードは次のとおりです。

import cv2
import numpy as np

image = cv2.imread('eye pupil.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

cl1 = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
clahe = cl1.apply(gray)

bw = cv2.adaptiveThreshold(clahe, 255, cv2.ADAPTIVE_THRESH_MEAN_C,\
            cv2.THRESH_BINARY, 21, 12)

kernel = np.ones((5,5), np.uint8)
opening = cv2.morphologyEx(bw, cv2.MORPH_OPEN, kernel, iterations=3)

img, contours, hierarchy = cv2.findContours(opening, cv2.RETR_TREE,
                                            cv2.CHAIN_APPROX_SIMPLE)

draw = cv2.drawContours(image, contours, 5, (0,0,255), 2)

cv2.imshow('draw', draw)

cv2.waitKey(0)
cv2.destroyAllWindows()

出力は次のとおりです。

瞳孔 重心

確かに、私が書いたコードは、最初からかなり良い重心を与えてくれます。しかし、これをビデオに実装しようとすると、出力が非常にうまくいきません。

私が使用するビデオのコードで、haarcascade_righteye_2splits.xmlまたはhaarcascade_leftteye_2splits.xml検出するカメラについてより具体的に説明します。

ビデオ、左、右、まばたきで瞳孔追跡コードを実行するにはどうすればよいですか。

OpenCV 3.1.0-dev と Python 2.7.x を使用しています

4

0 に答える 0