Pull to refresh
135
Сергей@Lerg

Пользователь

33
Subscribers
Send message
Модем подержанный в упаковке от МТС без симки: 350р.
Тачскрин примерно 1300р.
Bluetooth модуль 150р.
Хаб вроде 250р.
Ридер 200р.
Антенный кабель и коннекторы рублей 450.
Антенны нашёл бесплатно у знакомых, но если их покупать, то выйдет порядка 1000р.
Провода, припой, инструменты не в счёт.

Итого примерно 2700 рублей.
Убунту сама его подхватила, нужно было только произвести калибровку с помощью xinput_calibrator, я скачал версию для 10.04, но она успешно заработала и на 11.04.
Мне просто зелёненькая понравилась!
А так получилось очень даже неплохо. Можно даже переписать с учётом кросплатформенности, повесить программку в трей и захватывать речь по хоткею (можно пока нажата клавиша). Ммм, мне понравилась идея, сделаю на питоне.
Вместо Microsoft можно также было бы использовать Google Text to Speech, у него мне произношение нравится гораздо больше.
Если света достаточно и позволяет камера, то не мешает, но это далеко не каждая камера.
Кстати да, такой эффект можно достичь снимая видео 60 кадров в секунду и затем на компе отбрасывая каждый второй.
В большинстве видеокамер так и есть — выдержка = 1/fps. Дело в том, что электронный затвор сильно отличается от механического. Если на механике мы правда можем экспонировать кадры с выдержками хоть 1/200, хоть 1/4000, хоть 30 секунд, при этом оптический сенсор закрывается от света механически, то электронный затвор не может предотвратить попадания света на сенсор, в этом случае камера считывает с матрицы текущее состояние и старается обнулить его. Видеокамеры страдают от этого тем, что на ярких объектах появляются вертикальные полосы — слишком много света поступает на матрицу и электронный затвор не справляется.

Ещё одно ограничение это то, что если мы уменьшаем выдержку в два раза, то и кадр становится в два раза темнее, а потребительские видеокамеры не могут похвастать хорошей светосилой, в результате чего экспонирование идёт всё возможное время.

Настройка яркости же обычно делается путём изменения чувствительности — грубо говоря усилением полученного сигнала с матрицы.
Только хай энд видеокамеры могут себе позволить время экспонирования ниже частоты кадров, но какие конкретно модели так делают я не знаю, в явном виде это нигде не встречал.
Пользовался Zoneminder и AVReg, последний больше понравился, но у него ограничение — бесплатная версия только на 4 канала.
В статье рассматривается программный способ захвата для того, чтобы можно было написать свою программу, которая бы обрабатывала видео.
Обычные usb вебкамеры могут справится с этой задачей только при хорошем освещении.
В вашем случае дешевле будет использоваться аналоговые камеры и плату захвата (с полной скоростью захвата на каждый канал). Я использовал платы ORIENT на чипе от philips.
Нецифровых сетевых камер я ещё не видел. Здесь упор именно на слово сетевое. Потому что цифровые камеры могут подключаться к компьютеру через USB или FireWire.
Да, действительно, качественные сетевые камеры стоят намного дороже качественных аналоговых. В этом их минус.
Ещё вещать видео в сеть может ffserver.
Пожелание принято, переведу завтра.
А вот этот же алгоритм, но с учётом уже пустых строк, комментариев и c обработкой событий, когда значение переопределяется и когда не соблюдается вложенность. Также проверяется доступ к файлу.
Этим уже можно пользоваться.
def read_conf(filename):
    from os import access, R_OK
    if not access(filename, R_OK):
        raise IOError('Error: Cannot read the configuration file "' + filename + '".')
        return False
    d = {}
    with open(filename, 'r') as file:
        for linenumber, line in enumerate(file):
            line = line.strip()
            if not line or line[0] == '#' or line[0] == ';':
                continue
            line_sp = line.split('=',1)
            if not (len(line_sp) == 2 and line_sp[1]):
                raise IOError('Error: Cannot parse the configuration file "' + filename + '" at line ' + str(linenumber) + '.')
                return False
            key, value = line_sp
            t = d
            for subkey in key.strip().split('.'):
                if not t.has_key(subkey) or t[subkey].__class__.__name__ != 'dict':
                    t.update({subkey: {}})
                p = t
                t = t[subkey]
            if p[subkey]:
                if type(p[subkey]) != type(value):
                    raise IOError('Error: Cannot assign a value to a node in the configuration file "' + filename + '" at line ' + str(linenumber) + '.')
                    return False
                print 'Warning: Overriding previously defined value for key "' + key + '" at line ' + str(linenumber) + '.'
            p.update({subkey:value.strip()})
    return d

try:
    print read_conf('config.txt')
except IOError, error:
    print 'Failed to read the configuration file:'
    print error
За точку с запятой не ругать — просто не заметил её.
Я, как питонист, тоже не удержался решить эту задачу:
def read_conf(filename):
    d = {};
    with open(filename, 'r') as file:
        for line in file:
            key, value = line.split('=',1)
            t = d
            for subkey in key.strip().split('.'):
                if not t.has_key(subkey):
                    t.update({subkey: {}})
                    p = t
                t = t[subkey]
            p.update({subkey:value.strip()})
    return d

print read_conf('config.txt')


Учитывает пробелы между элементами.
При использовании ДКП, после квантинизации его коэффициентов у нас получается матрица, у который бОльшие элементы сосредоточены в верхнем левом углу, а нули в нижнем правом. Зигзаг позволяет ранжировать эти величины по убыванию, что положительно сказывается на дальнейшей обработке этих коэффициентов RLE алгоритмом.

ЗЫ: Почему-то мой комментарий не опубликовался, дублирую.

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity