Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2010, 00:52   #1
Aspirine20
Новичок
Джуниор
 
Регистрация: 30.11.2010
Сообщений: 2
Восклицание Лазерный тир. Сканирование с камеры. Оценка результата

Доброе время суток.
По стечению обстоятельств, мне предстоит сделать лазерный тир для кафедры военного института. Суть проста:
На стене висит мишень, под ней стоит камера и читает с мишени картинку.
Пистолет - с лазерным светодиодом и конденсатором - что бы стрелять, а не светить.

Стрельнул, в программе зафиксировалась красная точка и вывелся куда то результат. Указывается там фамилия, имя, все дела. И среднее за 5 попаданий допустим.

Проблема в том, что делфи я знаю по скольку по стольку =))) Но у меня есть желание разобраться в этой теме.

То что мне нужно - как бы отображено тут:
_http://www.youtube.com/user/GhostRussia#p/u/16/42rZRfghFy4

Прошу всякой помощи с этим вопросом, спасибо.
Aspirine20 вне форума Ответить с цитированием
Старый 30.11.2010, 01:01   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

http://www.programmersforum.ru/showt...F2%EE%F7%EA%E0
Вообще, поиск по форуму даст ответы на многие вопросы...
mihali4 вне форума Ответить с цитированием
Старый 30.11.2010, 18:50   #3
Aspirine20
Новичок
Джуниор
 
Регистрация: 30.11.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
http://www.programmersforum.ru/showt...F2%EE%F7%EA%E0
Вообще, поиск по форуму даст ответы на многие вопросы...
Я уже нашел несколько статей по поводу того как вывести изображение с веб-камеры на форму в делфи, но пока что у меня ничего не получилось и я хочу начать с самого низа.

Делфи 7 установил. Какие дополнительно нужны модули для моей программы и как их правильно устанавливать? Потому что при открытии кодов подобных программ, делфи ругается о том что ему не хватает каких то модулей, компонентов и т.п.

После того как у меня получится вывести изображение с веб камеры на форму, можно уже будет делать дальше.

Спасибо.



Изменения :

Нашел программу на делфи для вывода изображения с веб камеры.

вот код

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    Timer1: TTimer;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const WM_CAP_START = WM_USER;
WM_CAP_STOP = WM_CAP_START + 68;
WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
WM_CAP_SAVEDIB = WM_CAP_START + 25;
WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
WM_CAP_SEQUENCE = WM_CAP_START + 62;
WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;

function capCreateCaptureWindowA(lpszWindowName : PCHAR;
dwStyle : longint;
x : integer;
y : integer;
nWidth : integer;
nHeight : integer;
ParentWin : HWND;
nId : integer): HWND;
stdcall external 'AVICAP32.DLL';
var
  Form1: TForm1;

implementation
{$R *.dfm}


var hWndC : THandle;

procedure TForm1.Button1Click(Sender: TObject);
begin
 hWndC := capCreateCaptureWindowA('My Own Capture Window',
WS_CHILD or WS_VISIBLE ,
0,
0,
Panel1.Width,
Panel1.Height,
Panel1.Handle,
0); //создаем область для вывода получаемых в будущем картинок =)

if hWndC <> 0 then //если при создании области ошибок не возникло, то сопкойно начинаем забирать данный с веб-камеры
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);  //забираем картинку с вебкамеры

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  hWndC := 0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if hWndC <> 0 then
  begin
    SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);  //"отключаемся" от веб-камеры
    hWndC := 0;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if hWndC <> 0 then SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0); //забираем картинку с вебкамеры
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   ShellExecute(Handle, nil, 'http://ignatiev.su', nil, nil, SW_SHOW);
end;

end.
Все запустилось. Изображение с камеры получил.

Как быть дальше? То есть.. мне нужно что бы камера светила на мишень.. мишень у меня, в принципе, одна. То есть нужно вывести 2 мишени на экран. Первую с камеры, вторую с компа (за ранее сфотканую) и совместить как то их. То есть При попадании красной точки на изображение камеры - она автоматически переносилась с теми же координатами на рисунок, там отмечалась (как пробоина).

Далее уже нужно будет думать как подсчитывать результаты и ограничивать кол-во выстрелов.

Спасибо.

Последний раз редактировалось Aspirine20; 30.11.2010 в 19:19.
Aspirine20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рейтинговая оценка Александр_63 Microsoft Office Excel 6 06.06.2010 19:09
Оценка производительности сайта kiwibird Свободное общение 3 06.06.2009 00:22
Оценка алгоритма Алежа Помощь студентам 7 20.01.2009 14:28
как заправить лазерный принтер? Neonovaja Luna Компьютерное железо 3 17.12.2008 03:36
Игра:"Тир" Fire.id Общие вопросы .NET 0 22.06.2008 14:14