понедельник, 12 апреля 2010 г.
OpenCV. Hand detection
Обучил классификатор для обнаружения правой ладони человека. Добавил функционал для управления курсором.
воскресенье, 11 апреля 2010 г.
OpenCV. HaarClassifier
OpenCV. Обнаружение объектов. Haar-классификатор.
CascadeClassifier haar(face_cascade);
cvtColor(frame, gray, CV_BGR2GRAY);
- рисуем прямоугольник на изображении frame
#include <stdlib.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv;
/*
*
*/
int main(int argc, char** argv) {
Mat frame, gray;
string face_cascade = "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml";
CascadeClassifier haar(face_cascade);
VideoCapture cap(0);
namedWindow("Video", 1);
vector<Rect> objects;
while (true) {
cap >> frame;
cvtColor(frame, gray, CV_BGR2GRAY);
haar.detectMultiScale(gray, objects, 1.5, 16, 0, Size(32,32));
for (vector<Rect>::const_iterator r = objects.begin(); r != objects.end(); r++)
rectangle(frame, r->tl(), r->br(), Scalar(0, 0, 255));
imshow("Video", frame);
if (waitKey(33) >= 0) break;
}
return (EXIT_SUCCESS);
}
- создаем объект классификатора, в качестве параметра для конструктора используется имя файла xml-файла с описанием характеристик каскада
vector<Rect> objects;
- вектор прямоугольников, описывающих области с обнаруженными объектами
cvtColor(frame, gray, CV_BGR2GRAY);
- конвертируем цветное изображение в черно-белое
haar.detectMultiScale(gray, objects, 1.5, 16, 0, Size(32,32)); - ищем объекты на изображении gray и сохраняем объекты в вектор objects
- 1.5 - scale-параметр
- 16 - минимальное количество соседей
- 0 - флаги
- Size(32, 32) - минимальный размер подобласти, с которой начинается поиск объекта
rectangle(frame, r->tl(), r->br(), Scalar(0, 0, 255));
- рисуем прямоугольник на изображении frame
пятница, 9 апреля 2010 г.
OpenCV. Part 1.
OpenCV. Простое приложение.
- подключение пространства имен для OpenCV
- создаем объект изображения(на самом деле структура сложнее, но для первых программ и так сойдет:))
- захватываем изображение с камеры и сохраняем в объекте frame
Пример простого приложения, выводящего изображение с камеры.
#include <stdlib.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv;
/*
*
*/
int main(int argc, char** argv) {
Mat frame;
VideoCapture cap(0);
namedWindow("Video", 1);
while(true)
{
cap >> frame;
imshow("Video", frame);
if (waitKey(33) >= 0) break;
}
return (EXIT_SUCCESS);
}
#include <opencv/cv.h>
#include <opencv/highgui.h>
- заголовочные файлы для OpenCV
using namespace cv;
- подключение пространства имен для OpenCV
Mat frame;
- создаем объект изображения(на самом деле структура сложнее, но для первых программ и так сойдет:))
VideoCapture cap(0); - создаем объект для захвата видео с камеры
namedWindow("Video", 1);
- определяем именованное окно
cap >> frame;
- захватываем изображение с камеры и сохраняем в объекте frame
imshow("Video", frame);
- показываем изображение
if (waitKey(33) >= 0) break;
- в течение 33 миллисекунд ждем нажатия клавиши, если была нажата какая-нибудь клавиша, то выходим из цикла
Вот простой пример приложения, использующего библиотеку OpenCV. На его основе будем создавать более сложные приложения, но в следующий раз.
Удачи. :)
OpenCV. Introduction
OpenCV. Как и что ?
Во время исследований по моему диплому, связанному с распознаванием образов, на толкнулся на библиотеку OpenCV. Показалась довольно замечательной штукой. Но к сожалению документации по ней на русском языке весьма не густо, поэтому решил начать цикл статей по описанию работы с этой библиотекой. В качестве источника информации пока буду ограничиваться книгой "Learning OpenCV" и документацией по OpenCV с сайта opencv.willowgarage.com.
суббота, 4 апреля 2009 г.
Шифрование файлов
1) GPG
Зашифровать
Расшифровать
2) OpenSSL
Зашифровать
Расшифровать
3) Mcrypt
Зашифровать
Расшифровать
Зашифровать
gpg -c filename
Расшифровать
gpg -d filename.gpg
2) OpenSSL
Зашифровать
openssl bf -in filename -out filename.bf
- bf - алгоритм шифрования
Расшифровать
openssl bf -d -in filename.bf -out filename
3) Mcrypt
Зашифровать
mcrypt -a blowfish filename
Расшифровать
mcrypt -d filename.nc
четверг, 2 апреля 2009 г.
Tools4hack.Ettercap.v0.1
Ettercap
Запуск :
ettercap [опции] TARGET1 TARGET2
TARGET1 - источник
TARGET2 - назначение
Формат TARGETS :
MACs/IPs/PORTs
Опции :
-T, --text - использовать только текстовый интерфейс
-q, --quiet - не отображать содержимое пакетов
-L, --log <> - указание файла логов
-i, --iface <> - указание сетевого интерфейса для прослушивания
-P, --plugin <> - активация плагина
-F, --filter <> - использование фильтров
Примеры :
1) Прослушка пароля
2) Прослушка определенного порта у определенного хоста
Запуск :
ettercap [опции] TARGET1 TARGET2
TARGET1 - источник
TARGET2 - назначение
Формат TARGETS :
MACs/IPs/PORTs
Опции :
-T, --text - использовать только текстовый интерфейс
-q, --quiet - не отображать содержимое пакетов
-L, --log <> - указание файла логов
-i, --iface <> - указание сетевого интерфейса для прослушивания
-P, --plugin <> - активация плагина
-F, --filter <> - использование фильтров
Примеры :
1) Прослушка пароля
root@m-pc:~# ettercap -Tq
ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA
Dissector "dns" not supported (etter.conf line 70)
Listening on eth0... (Ethernet)
eth0 -> 00:09:61:9A:7B:2D 192.168.0.2 255.255.255.0
SSL dissection needs a valid 'redir_command_on' script in the etter.conf file
Privileges dropped to UID 65534 GID 65534...
28 plugins
39 protocol dissectors
53 ports monitored
7587 mac vendor fingerprint
1698 tcp OS fingerprint
2183 known services
Starting Unified sniffing...
Text only Interface activated...
Hit 'h' for inline help
POP : 94.100.177.6:110 -> USER: user_1 PASS: 12345
2) Прослушка определенного порта у определенного хоста
root@m-pc:~# ettercap -Tt tcp // /192.168.0.1/80
ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA
Dissector "dns" not supported (etter.conf line 70)
Listening on eth0... (Ethernet)
eth0 -> 00:09:61:9A:7B:2D 192.168.0.2 255.255.255.0
SSL dissection needs a valid 'redir_command_on' script in the etter.conf file
Privileges dropped to UID 65534 GID 65534...
28 plugins
39 protocol dissectors
53 ports monitored
7587 mac vendor fingerprint
1698 tcp OS fingerprint
2183 known services
Randomizing 255 hosts for scanning...
Scanning the whole netmask for 255 hosts...
* |==================================================>| 100.00 %
1 hosts added to the hosts list...
Starting Unified sniffing...
Text only Interface activated...
Hit 'h' for inline help
Fri Apr 3 00:00:43 2009
TCP 192.168.0.2:38137 --> 192.168.0.1:80 | S
Fri Apr 3 00:00:43 2009
TCP 192.168.0.1:80 --> 192.168.0.2:38137 | RA
Fri Apr 3 00:00:43 2009
TCP 192.168.0.2:38138 --> 192.168.0.1:80 | S
Fri Apr 3 00:00:43 2009
TCP 192.168.0.1:80 --> 192.168.0.2:38138 | RA
Fri Apr 3 00:00:46 2009
TCP 192.168.0.2:38142 --> 192.168.0.1:80 | S
Fri Apr 3 00:00:46 2009
TCP 192.168.0.1:80 --> 192.168.0.2:38142 | RA
среда, 26 марта 2008 г.
Немного о GRUB
Коротко о GRUB :
Grub- это универсальный загрузчик ОС.
Загрузчик операционной системы - это программа, расположенная в первых
секторах жесткого диска (далее просто загрузчик), например в MBR
(главная загрузочная запись) жесткого диска. После теста системы, в
момент загрузки, BIOS (базовая система ввода-вывода) передает
управление MBR, если система настроена для загрузки из неё. Затем
программа, расположенная в MBR начинает выполняться. Эта программа
называется загрузчиком, её задача - передать управление ядру
операционной системы, которое продолжит загрузку.
Существуют несколько загрузчиков, включая GNU GRUB (универсальный
загрузчик), Boot manager, LILO (загрузчик ОС Linux), NTLDR (загрузчик
Windows NT систем) и другие.
Простая установка grub в раздел :
Инсталляция GRUB :
Компилим GRUB и ищем файлы
(Обычно в /usr/share/i386-pc или в /usr/local/share/i386-pc)
Копируем в /boot/grub .
Замечание. GRUB индексирует диски не как система, например /dev/hda5 он определяет как (hd0,4) : hd0 - первый диск, 4 - пятый раздел на диске.
Запускаем grub :
Инсталлим файлы :
/boot/grub/menu.conf - конфигурационный файл для отображения меню
Инсталляция GRUB на дискету :
# dd if=stage2 of=/dev/fd0 bs=512 seek=1
if = input file
of = output file
bs = byted to read and write
count = number of copies
seek = сколько раз пропустить по bs байт прежде чем записать (предохраняет от стирания stage1)
Конфигурация GRUB :
Загрузка из GRUB :
kernel.img - образ ядра
Конфигурация menu.conf :
# grub
grub>root (hd0,4) #если /boot находится на /dev/hda5
grub>setup (hd0)
Инсталляция GRUB :
Компилим GRUB и ищем файлы
stage1
stage2
*_stage1_5
grub
(Обычно в /usr/share/i386-pc или в /usr/local/share/i386-pc)
Копируем в /boot/grub .
Замечание. GRUB индексирует диски не как система, например /dev/hda5 он определяет как (hd0,4) : hd0 - первый диск, 4 - пятый раздел на диске.
Запускаем grub :
# /boot/grub/grub
grub>
Инсталлим файлы :
grub> install (hd0,4)/boot/grub/stage1 (hd0) \
(hd0,4)/boot/grub/stage2 p (hd0,4) /boot/grub/menu.conf
/boot/grub/menu.conf - конфигурационный файл для отображения меню
Инсталляция GRUB на дискету :
# dd if=stage1 of=/dev/fd0 bs=512 count=1# dd if=stage2 of=/dev/fd0 bs=512 seek=1
if = input file
of = output file
bs = byted to read and write
count = number of copies
seek = сколько раз пропустить по bs байт прежде чем записать (предохраняет от стирания stage1)
Конфигурация GRUB :
Загрузка из GRUB :
grub> root (hd0,4)
grub> kernel /boot/kernel.img root=/dev/hda5
grub> boot
kernel.img - образ ядра
Конфигурация menu.conf :
title Linux OC
root (hd0,4)
kernel /boot/kernel.img root=/dev/hda5
boot
Подписаться на:
Сообщения (Atom)