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

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

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

Студворк — интернет-сервис помощи студентам
Помогите, как получить изображение с веб-камеры через билдер, а то я хочу сделать веб-камерный шпион, но не знаю как.
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2007, 01:18
Ответы с готовыми решениями:

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

Изображение с Web-камеры
Привет, ребят... не гоните в другие темы... я согласен, что в этой теме: https://www.cyberforum.ru/cpp-builder/thread1737.html Всё...

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

119
Фрилансер
49 / 34 / 7
Регистрация: 12.01.2010
Сообщений: 186
Записей в блоге: 1
26.03.2011, 13:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Vl_nik Посмотреть сообщение
попробую переписать код на Visuall C++ поскольку я пишу на нем
Погугли! ... для Visuall есть способ пороще ...
0
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 14
16.09.2011, 04:32
Хочу сначала поблагодарить Elizium и LK за прекрасно развитую тему. У меня вопрос такого характера. У меня есть ТВ-тюнер, а у него есть видео-вход. С него я могу получить картинку таким же способом ? Или как мне поступить иначе? Дело в том что я написать программу для управления маленьким самолетом. Видео поступает через видеовход тюнера, как мне вывести картинку?

Добавлено через 50 минут
Следующий вопрос. После запуска программы, вне Borlanda, постоянно выскакивает сообщение "Cannot open Clipboard"
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
30.01.2012, 04:11
Кто-нибудь в курсе, почему, если поставить Interval таймера на 45(почти 24 кадра/сек),
то периодически происходит ошибка Ошибка ClipBoard: Отказано в доступе?
Нельзя так часто обращаться?

Добавлено через 18 минут
Прога отработала 10-15 минут и теперь при запуске всплывает окошко выбора устройства записи, и после выбора изображения нет.

Добавлено через 1 минуту
Этот вариант нужно доработать? Если да, то что тут несовершенно?
или просто не рабочий?

Добавлено через 2 минуты
Код-то всего 20 строк, что очень радует..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
__fastcall TFormMain::TFormMain(TComponent* Owner)
    : TForm(Owner)
{
    hWndC=capCreateCaptureWindow(L"",WS_CHILD,  this->Left,
    this->Top,
    Image1->Width,
    Image1->Height,
    this->Handle,
    11011);capDriverConnect (hWndC,0);
}
void __fastcall TFormMain::Timer1Timer(TObject *Sender)
{
    capGrabFrame(hWndC);
    if(capEditCopy(hWndC))
    Image1->Picture->LoadFromClipboardFormat(CF_BITMAP, Clipboard()->GetAsHandle(CF_BITMAP),0);
}
void __fastcall TFormMain::FormClose(TObject *Sender, TCloseAction &Action)
{
    capDriverDisconnect(hWndC);
}
1
4 / 4 / 0
Регистрация: 14.12.2010
Сообщений: 7
30.01.2012, 04:13
установил значение Interval равно 41 (24 кадра/сек). 5 минут камера работала, ошибок не возникало.
может у Вас там памяти иногда не хватает или сама камера не позволяет чаще обращаться
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
30.01.2012, 16:36
Цитата Сообщение от TswetkOFF Посмотреть сообщение
5 минут камера работала
Ну так пусть дольше поработает.
1
4 / 4 / 0
Регистрация: 14.12.2010
Сообщений: 7
31.01.2012, 00:00
Цитата Сообщение от __bool Посмотреть сообщение
Ну так пусть дольше поработает.
время работы 105 минут, интервал = 41
в это время и скрины сохранял и записывал видео... все в порядке

проект компилирован в Builder 2009... может у Вас в настройках проекта что-то... попробуйте тот exe на другой машине запустить
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
23.09.2012, 17:56
Всем привет!
В методе снятия изображения с веб-камеры, используется буфер обмена.

C++
1
2
3
    capGrabFrame(hWndC);
    if(capEditCopy(hWndC))
    Image1->Picture->LoadFromClipboardFormat(CF_BITMAP, Clipboard()->GetAsHandle(CF_BITMAP),0);
Как обойти это? Дело в том что, если вы работаете в другой программе (допустим MS Word), и вставляете скопированный текст, то большая вероятность того что вставиться снимок с веб-камеры.
Подскажите пожалуйста, как можно снимок с камеры, сразу поместить в Bitmap не загружая его в буфер обмена?
C++
1
Graphics::TBitmap  * b1 = new Graphics::TBitmap,
Есть варианты с использованием технологий OpenCV, но этот вариант на данный момент не подходит.

Заранее благодарю за помощь!!!
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.09.2012, 18:37
Можно сохранять в файл с помощью capFileSaveDIB() и грузить из него. Не шибко эффективно, наверняка и получше метод есть.
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
23.09.2012, 20:49
Цитата Сообщение от BRcr Посмотреть сообщение
Можно сохранять в файл с помощью capFileSaveDIB() и грузить из него. Не шибко эффективно, наверняка и получше метод есть.
Нууу проблема с буфером решена, но появляется новая ещё более значительная проблема, так как количество кадров в секунду составляет от 15 до 30 и это все должно писаться на винчестер, потом считываться и удалятся перед созданием нового файла. Этот вариант к сожалению не подходит.

Есть ещё варианты, чтобы не использовать буфер обмена или защитить его от других программ?
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
25.09.2012, 23:31
Неужели нету больше вариантов, чтобы не использовать системный буфер обмена???
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
27.09.2012, 09:05
А можно ли сразу снимок с камеры загрузить в Graphics::TBitmap не используя буфер обмена?
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
27.09.2012, 09:18
Лучший ответ Сообщение было отмечено как решение

Решение

Может будет полезно.
http://www.ampersant.ru/glaz/
Там есть исходники программы на дельфи.
3
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.12.2012, 07:40
Цитата Сообщение от __bool Посмотреть сообщение
Кто-нибудь в курсе, почему, если поставить Interval таймера на 45(почти 24 кадра/сек),
то периодически происходит ошибка Ошибка ClipBoard: Отказано в доступе?
Нельзя так часто обращаться?
Добавлено через 18 минут
Прога отработала 10-15 минут и теперь при запуске всплывает окошко выбора устройства записи, и после выбора изображения нет.
Добавлено через 1 минуту
Этот вариант нужно доработать? Если да, то что тут несовершенно?
или просто не рабочий?
Добавлено через 2 минуты
Код-то всего 20 строк, что очень радует..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
__fastcall TFormMain::TFormMain(TComponent* Owner)
 : TForm(Owner)
{
 hWndC=capCreateCaptureWindow(L"",WS_CHILD, this->Left,
 this->Top,
 Image1->Width,
 Image1->Height,
 this->Handle,
 11011);capDriverConnect (hWndC,0);
}
void __fastcall TFormMain::Timer1Timer(TObject *Sender)
{
 capGrabFrame(hWndC);
 if(capEditCopy(hWndC))
 Image1->Picture->LoadFromClipboardFormat(CF_BITMAP, Clipboard()->GetAsHandle(CF_BITMAP),0);
}
void __fastcall TFormMain::FormClose(TObject *Sender, TCloseAction &Action)
{
 capDriverDisconnect(hWndC);
}
Блин почти тоже... сначала все работало, а после второго запуска программы появилось окошко с запросом драйвера (при первом запуске не вылазило) и после него фиг - возвращает ошибку ф-ция
C++
1
 capEditCopy(hWndC)
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
04.12.2012, 12:42
простите если что не так скажу, а пробовали capPreview? лить картинку на форму, а потом через BitBlt?
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
07.01.2013, 14:39
gumi250, http://www.ampersant.ru/glaz/ Отличная программка ZORKIY. Решил ее переделать с Delhi в Builder

Нарыл еще одну программку dscap с кодом Delhi и с не полным кодом Builder где отсутствует #include "VCapStrings.hpp". К этому вопросу решил подойти таким способом: Взял файл VCapStrings.pas и почти переделал его, загвоздка с паскалевским Массивом
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
unit VCapStrings;
 
interface
 
uses VCap;
 
const
  DialogTitles: array [TCaptureDialog] of string = (
    'Video Format',         // VFORMAT,
    'Video Source',         // VSOURCE,
    'Video Display',            // VDISPLAY,
    'Video Capture Filter', // VCAPTURE,
    'Video Crossbar',           // VCROSSBAR,
    'TV Tuner',                 // TVTUNER,
    'Audio Capture Filter', // ACAPTURE,
    'Audio Crossbar',           // ACROSSBAR,
    'TV Audio',                 // TVAUDIO,
    'Video Capture Pin',    // VCAPTURE_PIN,
    'Video Preview Pin',    // VPREVIEW_PIN,
    'Audio Capture Pin',        // ACAPTURE_PIN
    'Video Compressor',         // VCOMPRESSOR,
    'Audio Compressor'          // ACOMPRESSOR,
  );
Смотрел и не понял Что это? TCaptureDialog и как это применить в Buildere
C++
1
2
const AnsiString DialogTitles[ TCaptureDialog]
const AnsiString DialogTitles[ ??? ]
Вложения
Тип файла: zip dscap.zip (601.3 Кб, 58 просмотров)
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
08.01.2013, 22:51
Не получилось, видел я такой исходник на делфи работает, а у кого на билдер исходничок есть?
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
08.01.2013, 22:56
NIKOLAYY,
а у кого на билдер исходничок есть?
А ты скачай dscap.zip и открой паку demo.cpp, там и есть исходничок.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
08.01.2013, 23:36
Garic
vcl60.bpl
Скачал чет у меня там ошибку выкинуло, и еще тут на прошлых страницах нашел рар архивы скачивал и все они пишут у вас нету то одного то друго файла. Скачиваю я эти файлы с инета которых нехватает пишет у вас нету уже тока другого файла и так бесконечно .
Я качаю компом а переношу на нетбук флешкой чтоб проверить (на компе камеры нету)
Я уже 40 минут туда сюда и обратно в комп...

Добавлено через 2 минуты
Я че забыл сказать тут наверно разные камеры и у всех по разному будет, у кого будет работать у кого нет...
Типа кому как повезет?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
08.01.2013, 23:37
Пытаешься просто запустить скомпилированный не тобою экзешник?
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
08.01.2013, 23:41
NIKOLAYY,
То что я выложил рабочий только exe. остальное надо доводить до ума, что и пытаюсь сделать. У кого есть желание присоединяйтесь. ПВСС
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2013, 23:41
Помогаю со студенческими работами здесь

Снимок с веб-камеры
нашел такой пример, который выводит на окно видео в режиме онлайн с вэб камеры http://pastebin.com/c9LCaLRT (из за ограничения...

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

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

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

Черный экран при снимке с веб камеры
Всем привет. Надыбал такой код и поставил на кнопку: hWndC=capCreateCaptureWindow("",WS_CHILD, this->Left, this->Top,...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru