summaryrefslogtreecommitdiff
path: root/megapixels/commands/demo/face_analysis.py
blob: 6721a02d2e322cb9a222f7e5604470336d5a2362 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import click

from app.settings import types
from app.models.dataset import Dataset
from app.utils import click_utils
from app.settings import app_cfg as cfg
from app.utils.logger_utils import Logger

@click.command()
@click.option('--data_store', 'opt_data_store',
  type=cfg.DataStoreVar,
  default=click_utils.get_default(types.DataStore.NAS),
  show_default=True,
  help=click_utils.show_help(types.Dataset))
@click.option('--dataset', 'opt_dataset',
  type=cfg.DatasetVar,
  required=True,
  show_default=True,
  help=click_utils.show_help(types.Dataset))
@click.pass_context
def cli(ctx, opt_index, opt_data_store, opt_dataset):
  """Display image info"""
  
  import sys
  from glob import glob
  from os.path import join
  from pathlib import Path
  import time

  import pandas as pd
  import cv2 as cv
  from tqdm import tqdm
  
  from app.utils import file_utils, im_utils, path_utils

  log = Logger.getLogger()

  dataset = Dataset(opt_dataset).load(opt_data_store)
  # find image records
  image_record = dataset.roi_idx_to_record(opt_index)
  # debug
  image_record.summarize()
  # load image
  fp_im = image_record.filepath
  im = cv.imread(fp_im)
  # display
  cv.imshow('', im)
  # cv gui
  while True:
    k = cv.waitKey(1) & 0xFF
    if k == 27 or k == ord('q'):  # ESC
      cv.destroyAllWindows()
      sys.exit()
    elif k != 255:
      # any key to continue
      break