Почему я не могу импортировать CFEVideoConf и image_resize из модуля utils в Python 3.7.2 - PullRequest
0 голосов
/ 24 апреля 2019

Из Интернета я узнаю, что для захвата изображений используется timelaspe. Однако у меня возникли проблемы. Я видел из GitHub и многие люди могут использовать: from utils import CFEVideoConf, image_resize но я не могу. Я сделал это в SublimeText 3.0 ... Если кто-то знает эту проблему, пожалуйста, помогите мне. Заранее спасибо.

Это мой код:

from utils import CFEVideoConf, image_resize

ImportError: невозможно импортировать имя 'CFEVideoConf' из 'utils' (C: \ Users \ NGHIA \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ utils__init __. Py)

1 Ответ

0 голосов
/ 24 апреля 2019

Когда вы говорите 'много людей' , вы, вероятно, ссылаетесь на это хранилище.

Это единственный человек, который определил CFEVideoConf, которого я смог найти.
Это определение для этого класса :

class CFEVideoConf(object):
    # Standard Video Dimensions Sizes
    STD_DIMENSIONS =  {
        "360p": (480, 360),
        "480p": (640, 480),
        "720p": (1280, 720),
        "1080p": (1920, 1080),
        "4k": (3840, 2160),
    }
    # Video Encoding, might require additional installs
    # Types of Codes: http://www.fourcc.org/codecs.php
    VIDEO_TYPE = {
        'avi': cv2.VideoWriter_fourcc(*'XVID'),
        #'mp4': cv2.VideoWriter_fourcc(*'H264'),
        'mp4': cv2.VideoWriter_fourcc(*'XVID'),
    }

    width           = 640
    height          = 480
    dims            = (640, 480)
    capture         = None
    video_type      = None
    def __init__(self, capture, filepath, res="480p", *args, **kwargs):
        self.capture = capture
        self.filepath = filepath
        self.width, self.height = self.get_dims(res=res)
        self.video_type = self.get_video_type()

    # Set resolution for the video capture
    # Function adapted from https://kirr.co/0l6qmh
    def change_res(self, width, height):
        self.capture.set(3, width)
        self.capture.set(4, height)

    def get_dims(self, res='480p'):
        width, height = self.STD_DIMENSIONS['480p']
        if res in self.STD_DIMENSIONS:
            width, height = self.STD_DIMENSIONS[res]
        self.change_res(width, height)
        self.dims = (width, height)
        return width, height

    def get_video_type(self):
        filename, ext = os.path.splitext(self.filepath)
        if ext in self.VIDEO_TYPE:
          return  self.VIDEO_TYPE[ext]
        return self.VIDEO_TYPE['avi']

И действительно, у него есть несколько файлов, в которые он импортирует этот класс. Например, здесь .

Чтобы она работала в вашей среде, вам необходимо:

  1. клонировать хранилище локально:

    git clone https://github.com/codingforentrepreneurs/OpenCV-Python-Series
    
  2. Установить требования:

    cd OpenCV-Python-Series
    pip install -r requirements.txt
    
  3. И тогда вы сможете полностью использовать проект

...