Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/287: Рейтинг темы: голосов - 287, средняя оценка - 4.71
7 / 2 / 0
Регистрация: 03.04.2007
Сообщений: 4
1

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

03.04.2007, 01:18. Показов 55564. Ответов 119
Метки нет (Все метки)

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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2007, 01:18
Ответы с готовыми решениями:

Изображение с веб камеры
Я написал программу которая снимает изображение с веб камеры!!! Возможно переписать мой код таким...

Изображение с Web-камеры
Привет, ребят... не гоните в другие темы... я согласен, что в этой теме:...

Снимок с веб камеры
как снять в билдер с++ снимок с веб камеры? в компонент TImage к примеру.

Снимок с веб-камеры
нашел такой пример, который выводит на окно видео в режиме онлайн с вэб камеры ...

119
9 / 9 / 1
Регистрация: 03.02.2007
Сообщений: 3
25.05.2007, 03:36 2
Лучший ответ Сообщение было отмечено как решение

Решение

Создание видеоокна и открытие источника видеосигнала:
C++
1
2
3
hWndC=capCreateCaptureWindow("",WS_CHILD, this->Left, this->Top, this->Width, this->Height, this->Handle, 11011);
capDriverConnect (hWndC,0);
Timer1->Enabled=true;
Обработчик получения видео с источника по таймеру:
C++
1
2
3
capGrabFrame(hWndC);
if(capEditCopy(hWndC))
Image1->Picture->LoadFromClipboardFormat(CF_BITMAP, Clipboard()->GetAsHandle(CF_BITMAP),0);
Закрытие источника сигнала (если этого не сделать, то при следующему обращению к драйверу камеры до перезагрузки системы, система выдаст, что драйвер уже используется):
C++
1
capDriverDisconnect(hWndC);
9
olllegic
31.05.2007, 19:03 3
Спасибо большое
25 / 23 / 4
Регистрация: 22.04.2010
Сообщений: 745
01.02.2011, 20:59 4
Сделал все, что здесь описано, происходит запрос выбора вэбкамеры, после которого в if
C++
1
2
3
4
if(capEditCopy(hWndC))
        {
                Image1->Picture->LoadFromClipboardFormat(CF_BITMAP,Clipboard()->GetAsHandle(CF_BITMAP),0);
        }
при пошаговом просмотре указатель никогда не попадает....
1
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
03.02.2011, 00:25 5
Добрый день. Для начинающих нельзя подробней, ато компилятор ругается...
плиз...
0
LK
Заблокирован
03.02.2011, 00:42 6
Лучший ответ Сообщение было отмечено как решение

Решение

Как ругается ? Обыкновенным матом, или пробует чего сообщить ?
3
1449 / 357 / 61
Регистрация: 03.04.2010
Сообщений: 2,098
03.02.2011, 00:58 7
А как для шпиона? Это нельзя на форуме обсуждать. Да и как? Если почти во всех новых Веб камерах встраивают светодиод и в том случае если камера работает то он загорается, а значит и жертва узнает что за ней следят и выключает камеру. Может я ошибаюсь
0
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
03.02.2011, 01:27 8
Вот такие ошибки выдает компилятор.
Как получить изображение с веб-камеры
0
LK
Заблокирован
03.02.2011, 01:37 9
И не надо каждый раз делать скрин ошибок - достаточно в окне сообщений выделить строки с ошибками и нажать CTRL+C, или в контекстном меню выбрать Copy . Быстрее, да и читать на форуме удобнее.

Можно попробовать #include <vfw.h>.
1
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
03.02.2011, 02:03 10
Количество ошибок уменьшилось.
Сори, вопрос не по теме (LK, вы мне какие книги по BuilderC++ и просто С++, посоветуете изучить)...ато уже стыдно...
[C++ Er,ror] Unit1.cpp(16): E2451 Undefined symbol 'hWndC'
[C++ Error] Unit1.cpp(24): E2451 Undefined symbol 'hWndC'
[C++ Error] Unit1.cpp(26): E2268 Call to undefined function 'Clipboard'
[C++ Error] Unit1.cpp(26): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] Unit1.cpp(31): E2451 Undefined symbol 'hWndC'
0
LK
Заблокирован
03.02.2011, 02:26 11
сам начинал с C++ для "чайников" (Стефан Р. Дэвис) и Архангельский, Программирование в С++ Builder 6 (есть поновее , версии Билдера до RAD 2009: Программирование в С++ Builder, седьмое издание) .

Добавлено через 3 минуты
hWndC - это, скорее всего,
C++
1
2
TForm1 *Form1;
HWND hWndC;
Добавлено через 3 минуты
И, подозреваю, Вы не сделали
C++
1
2
3
#include <vcl.h>
#include <Clipbrd.hpp> // <-----------
#pragma hdrstop
Добавлено через 10 минут
подобное
[C++ Error] Unit1.cpp(26): E2288 Pointer to structure required on left side of -> or ->*
получится, если в выражении написать, например
C++
1
str.c_str()
вместо
C++
1
AnsiString(str).c_str()
, ищите .
1
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
03.02.2011, 02:29 12
Все работает, спасибо!
Книжку тоже скачал, спасибо!
0
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
04.02.2011, 02:59 13
Лучший ответ Сообщение было отмечено как решение

Решение

Вот такая у меня получилась незамыславатая форма...
Спасибо всем кто помог ее сделать...
Может кому и пригодится...
5
Вложения
Тип файла: rar CAMERA.rar (466.7 Кб, 1325 просмотров)
LK
Заблокирован
04.02.2011, 03:07 14
У меня нет ВСВ6 - сделайте ЕХЕ , чтобы можно было запускать на другом компутере Компиляция программы под С++ Builder, чтобы работала на других компьютерах .
Гм, скомпилировалось .
Хорошо бы вырабатывать у себя привычку делать подсказки (Hint) , в данном случае - для кнопок.
2
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
04.02.2011, 03:17 15
Добрый вечер. В архиве все файлы проекта включая Project.exe. Кстати вопрос-почему изоброжение на небольшой экран выходит не полностью, а когда растяну форму и image1 тогда все нормально, может чего в инспекторе объектов "поднаболтать"?
А звук с микрофона компа, паралельно сложно добавить?
А потом это все в видеоформате (мр4) сохранить?
0
LK
Заблокирован
04.02.2011, 03:23 16
У меня нет камеры - проверить не могу, но, с большой долей вероятности - потому, что вот здесь
C++
1
2
3
4
5
6
7
8
9
hWndC=capCreateCaptureWindow("",WS_CHILD, this->Left,
                                          this->Top,
                                          this->Width,
                                          this->Height,
                                          this->Handle,
                                          11011);
 
capDriverConnect (hWndC,0);
Timer1->Enabled=true;
вы указываете относительно формы - на форму указывает this , эквивалентно Form1, попробуйте так:
C++
1
2
3
4
5
6
7
8
hWndC=capCreateCaptureWindow("",WS_CHILD, this->Left,
                                          this->Top,
                                          DBImage1->Width,
                                          DBImage1->Height,
                                          this->Handle,
                                          11011);
capDriverConnect (hWndC,0);
Timer1->Enabled=true;
или DBImage2.
1
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
04.02.2011, 03:36 17
Скомпилировал немного лучше стало но всеравно, видна только часть.
А еще вопрос по этой теме: Изображение можно перевернуть чтоб получился эфект зеркала?

не по теме: у меня есть 2007 билдер, который уже radstudio типа 57000 рублей стоит, мне он не понравился, пока болемение освою С++ даже в шестом билдере можно сотворить хорошую программу.
0
LK
Заблокирован
04.02.2011, 04:46 18
Цитата Сообщение от Samrisbe Посмотреть сообщение
1. Скомпилировал немного лучше стало но всеравно, видна только часть.
2. А еще вопрос по этой теме: Изображение можно перевернуть чтоб получился эфект зеркала?
3. у меня есть 2007 билдер, который уже radstudio типа 57000 рублей стоит, мне он не понравился, пока болемение освою С++
4. даже в шестом билдере можно сотворить хорошую программу.
1. Поиграйте с this->Width, this->Height, вместо которых можете спокойно указать числа 300, 300 и т.д., "подогнав" изображение под нужный размер
2. Да, зачем ?
3. Забудьте 2007 и пробуйте RAD XE
4. В ВСВ6 всегда было "можно сотворить хорошую программу"

И еще я не понимаю, для чего там DBImage , если есть просто Image ?

п.2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Горизонтальное отражение
Image1->Canvas->CopyRect(Rect(0, 0,
                         Image1->Width,
                         Image1->Height),
                         Image1->Canvas,
                         Rect(Image1->Width, 0, 0,
                         Image1->Height));
// Вертикальное отражение
Image1->Canvas->CopyRect(Rect(0, 0,
                         Image1->Width,
                         Image1->Height),
                         Image1->Canvas,
                         Rect(0, Image1->Height,
                         Image1->Width, 0));
1
1362 / 729 / 67
Регистрация: 28.01.2011
Сообщений: 2,056
04.02.2011, 06:28 19
DВImage мне внешне больше понравился изза стиля границ.
0
LK
Заблокирован
04.02.2011, 13:18 20
Отсительно размера - еще можно попробовать в OnFormCreate (или в инспекторе объектов) указать
C++
1
DBImage2->Strech = true;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2011, 13:18

Запись видео с веб камеры
Новичок в этом деле. Я даже не знаю в какую тему мой вопрос опубликовать. Сейчас набираю теорию...

Захват видео с веб-камеры (C++)
Здравствуйте! Я установил Visual Studio 2015 Community и библиотеку OpenCV 3.1.0 на Windows 10....

Снимок с веб камеры без использования буфера
Всем привет. Такой вопрос: можно ли копировать снимок не в буфер, а например, сразу в поток?...

Черный экран при снимке с веб камеры
Всем привет. Надыбал такой код и поставил на кнопку: hWndC=capCreateCaptureWindow(&quot;&quot;,WS_CHILD,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.