{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd\ntrain_sample_metadata = pd.read_json('../input/deepfake-detection-challenge/train_sample_videos/metadata.json').T\ntrain_sample_metadata.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#正しく開けることはわかった\nimport cv2\nfrom matplotlib import pyplot as plt\n\nface_cascade_path = \"/opt/conda/lib/python3.6/site-packages/cv2/data/haarcascade_frontalface_default.xml\"\ndef detectFace(image):\n    face_cascade = cv2.CascadeClassifier(face_cascade_path)\n    src_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)\n    facerect = face_cascade.detectMultiScale(src_gray)\n \n    return facerect\n\n# 何かしらの動画ファイル。\nvideo_path = '/kaggle/input/deepfake-detection-challenge/train_sample_videos/akxoopqjqz.mp4'\ncap = cv2.VideoCapture(video_path)\nprint(\"正しく開けているかどうか : {}\".format(cap.isOpened()))\nframenum = 0\nfaceframenum = 0\ncolor = (255, 255, 255)\n \nwhile(1):\n    framenum += 1\n    #retは,cap.read()でフレームが正しく読み込めたかどうかを教えてくれるフラグ\n    ret, image = cap.read()\n    if not ret:\n        break\n \n    if framenum%10==0:\n        facerect = detectFace(image)\n        if len(facerect) == 0: continue\n \n        for rect in facerect:\n            croped = image[rect[1]:rect[1]+rect[3],rect[0]:rect[0]+rect[2]]\n            plt.imshow(cv2.cvtColor(croped, cv2.COLOR_BGR2RGB))\n            cv2.imwrite(\"../output/kaggle/working/deepfake-detection-challenge/face_picture/\" + str(faceframenum) + \".jpg\", croped)\n \n        faceframenum += 1\n\ncap.release()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":1}