eddy_em: (Default)
Я уже неоднократно приходил к мнению, что Китай — хороший пример, когда количество не создает качество. Несмотря на то, что там на порядок больше народу живет, в абсолютном отношении народу с мозгами там меньше, чем даже в России (откуда и так приличное количество мозговитых, но по натуре мразей, свалило в последний десяток лет; взять того же "дихалта" — владельца easyelectronics: я-то думал, что приличный человек, а оказался либерастом).
Ну так вот, к делу. Купили в прошлом году на "Астро-М" пять китайских камер на сониковских чипах (с наибольшей чувствительностью; одна подобная у нас уже работает, дает вполне сносное изображение даже в полночь в новолуние). Я же сразу начал в них копаться, а там… Только поверхностно — уникальнейшая жесть. Сегодня еще и внутрь залез, чтобы ИК-подсветку отключить, и еще больше испугался!
tl;dr (много нецензурной брани) )
eddy_em: (Костерок)
Сейчас добил (надеюсь) клиент-серверную часть захвата изображений с видеоустройства (при помощи libffmpeg, чтобы не мучиться больше с v4l2).
Код — как обычно, в моих репах (гитхаб, сосфорж).
Пока что никаких настроек нет, демон просто открывает на заданном порту сокет и при подключениях плюет туда на каждый запрос изображение (raw, jpg или png).
Если запрос идет из браузера (т.е. со всеми соответствующими заголовками), то выдается просто файл (чтобы можно было делать псевдо-mjpeg трансляцию средствами жабоскрипта). В этом случае анализируется суффикс имени файла, который мы запрашиваем в GET, соответственно и высылается jpeg или png файл.
Если же нужно в каком-то промежуточном софте сделать запрос, то серверу надо сообщить, какой тип файла мы ожидаем (отправив ему "raw"/"jpg" или "jpeg"/"png"). В ответ придет файл, к которому будет "прислюнена" шапка: {тип файла}'\n'{размер файла}'\n' (для формата RAW вместо размера файла указывается размер изображения). Прочитав шапку, можно выделить буфер нужного размера, воткнуть туда начало изображения и дописать уже остатки. А можно и наплевать на шапку, делая realloc при необходимости.
Помимо демона я для тестов сделал простого клиента, позволяющего забрать N кадров и сохранить их на диске.

Теперь остается добавить в вебсокет-демон управления корректором захват кадров и передачу их клиенту, и будет уже нормальный интерфейс.
eddy_em: (hram nauki)
Решил я повесить себе на "горячие клавиши" изменение яркости экрана: чтобы при отключении света не лупасило сильно по глазам. Это — простая штука (к сожалению, яркость на nVidia можно регулировать лишь программно, т.к. блоб кривоват), которая реализуется двумя строчками в ~/.icewm/keys:
key "XF86Launch5" xrandr --output HDMI-0 --brightness .6
key "XF86Launch6" xrandr --output HDMI-0 --brightness 1




Однако, этого мне было мало, и я набросал простенький скриптик, который можно запускать по at или cron:
#!/bin/bash
#
# Change light of screen depending on common lightness
#
at now + 1 minute -M -f /Data/scripts/Screen_light1
FILE=/tmp/$$.jpg
ffmpeg -sameq -r 5 -f video4linux2 -s 640x480 -i /dev/video0 -ss 00:00:03.8 -t 00:00:00.1 -f image2 $FILE
BRI=$(convert $FILE -format "%[mean]" info:)
rm -f $FILE
BRILVL=$(echo "a=l($BRI)-8; if(a>1) a=1 else if(a<0.6) a=0.6; print a;" | bc -ql)
#echo "BRI: $BRI, LVL:  $BRILVL"
xrandr --output HDMI-0 --brightness $BRILVL


Суть скриптика в следующем: ffmpeg захватывает с веб-камеры 1 кадр (с задержкой, чтобы вебка успела выйти в авторежим — хотя, для чистоты эксперимента лучше будет при помощи v4l2ctl отключить всю автоматизацию у вебки, тогда и задержка не нужна будет), затем ImageMagic вычисляет некую среднюю яркость по этому изображению, ну а потом при помощи bc мы на основе средней яркости вычисляем, какую яркость монитора следует задать на вход xrandr.

Потестирую завтра еще и при свете дня.
eddy_em: (Default)
Когда-то давно возился я с "микроскопом" из веб-камеры с дешевой пластмассовой оптикой, дабы определить наиболее простой способ автофокусировки, которая значительно упростила бы нашу работу с некоторыми приборами. Частично я это исследование провел, но, как обычно забросил в долгий ящик, перейдя к другим насущным проблемам.

Сегодня я наткнулся на этот проектик, а "микроскоп" до сих пор валяется у меня на столе. В общем, решил я наделать немного скриншотов и вкратце рассказать, как можно использовать вейвлет-преобразования для выявления качества фокусировки.

Углубляемся )

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 12:12 pm
Powered by Dreamwidth Studios