Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
1

Захват изображения с видеокамер/вебкамеры

16.04.2010, 01:26. Показов 39444. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно сабж: еть вывод на экран видео,в определенный момент нужно сделать снимок(photo shot). Кто сталкивался, помогите плз,что то ничего дельного найти не получается или просто изза времени уже ничего не вижу))).Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2010, 01:26
Ответы с готовыми решениями:

Захват изображения с камеры
Есть некая камера со своим SDK. Пишу простенькое приложение для захвата с неё изображения. Ниже пробный код, который по нажатию кнопки...

Низкая скорость захват изображения с монитора
Привет. Есть (точнее уже угасает..) мысль - построить простенький аналог TeamViewer, сам он не подходит т.к. платный, Ammy admin...

Захват изображения с видеокамеры -> реакция на движение -> снимок с камеры
Здравствуйте, форумчане! Помогите пожалуйста реализовать захват камеры с последующим детектором движения и снимком, который...

29
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
16.04.2010, 02:04 2
Лучший ответ Сообщение было отмечено как решение

Решение

Скачай библиотеку AForge.net. Там есть контрол для воспроизведения видео с камеры.

C#
1
2
3
4
5
6
7
8
9
10
11
12
using AForge.Video;
using AForge.Video.DirectShow;
using AForge.Video.VFW;
using AForge.Vision;
...
FilterInfoCollection videodevices;
        VideoCaptureDevice videoSource;
...
 videodevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            videoSource = new VideoCaptureDevice(videodevices[0].MonikerString);
            videoSourcePlayer1.VideoSource = videoSource;
            videoSource.Start();
Далее на контроле воспроизведения видео есть событие onNewFrame:
C#
1
2
3
4
private void videoSourcePlayer1_NewFrame(object sender, ref Bitmap image)
        {
...
}
ref Bitmap image и есть картинка в настоящий промежуток времени! юзай)
9
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
16.04.2010, 03:13  [ТС] 3
название самого примера не моглы бы дать ?
0
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
16.04.2010, 11:54 4
в смысле "название" примера?)
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
16.04.2010, 13:58  [ТС] 5
в этом фрэймворке есть примеры и соответственно названия у них есть)))хотелось бы на полный код взгляенуть ,может получиться адаптировать под мой.У меня уже готовый код имеется с выводом видео на экран и еще кой какие примочки нету желения переписывать по новой все для использования Aforge.
Cудя по всему снимок с камеры уже есть, об этом говорит след строка:
C#
1
 engine.ReadFromBitmap((int)e.hBitmap, 0);
но я его не могу найти/достать его иди просто хотябы поместить в pictureBox.
хотелось бы знать в какую сторону вообще копать ...
Вот код который есть(может знакомо, кто поможет разобраться как сделать а то у меня что то не выходит):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
public Form1()
        {
            
            InitializeComponent();
           
            if (CreateANPREngine(ref engine) != 0)
            {              
                MessageBox.Show("Unable to create ANPR engine");
                return;
            }
 
            try
            {
                engine.Init(true); // Video Mode
                
            }
            catch (COMException ex)
            {
                MessageBox.Show(ex.Message);
            }
 
            engine.LicenseManager.AddLicenseKey("YOUR DEVELOPER LICENSE KEY");
 
            cmbVideoSource.Items.Clear();
            for (int i = 0; i < axVideoCapture1.VideoSourceCount; i++)
            {
                cmbVideoSource.Items.Add(axVideoCapture1.get_VideoSources(i));
            }
 
           
          
            lblDate.Text = DateTime.Now.Date.ToShortDateString();
        }
 
 
private void btnStart_Click(object sender, EventArgs e)
        {
            axVideoCapture1.StartCapture();
        }
        
        private void btnStop_Click(object sender, EventArgs e)
        {
            axVideoCapture1.StopCapture();
        }
        
        private void axVideoCapture1_FrameReceived(object sender, AxDTKANPRLib._IVideoCaptureEvents_FrameReceivedEvent e)
        {
         try
            {
                engine.ReadFromBitmap((int)e.hBitmap, 0);
                if (engine.Plates.Count > 0)
                {
                    string text =  "";
                    for (int i = 0; i < engine.Plates.Count; i++)
                    {
                        if (text.Length > 0)
                            text += "\r\n";
                        text += engine.Plates.get_Item(i).Text + "::" + DateTime.Now.Date.ToShortDateString() + "::" + DateTime.Now.TimeOfDay.ToString();
                        
                    }
                    SetText(text, labelPlates);
                }             
            }
            catch (COMException ex)
            {
                string errorText = "";
                engine.GetLastErrorText(ref errorText);
                //MessageBox.Show(errorText + " (ErrorCode = " + ex.ErrorCode.ToString() + ")");
            }
            GC.Collect();
            
        }
 
        private void cmbVideoSource_SelectedIndexChanged(object sender, EventArgs e)
        {
            axVideoCapture1.CurVideoSourceName = cmbVideoSource.SelectedItem.ToString();
            
        }
        
        private void btnDeviceProperties_Click(object sender, EventArgs e)
        {
            axVideoCapture1.ShowDeviceProperties();
        }
 
        private void btnOutputProperties_Click(object sender, EventArgs e)
        {
            axVideoCapture1.ShowOutputProperties();
        }
1
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
16.04.2010, 14:25 6
Лучший ответ Сообщение было отмечено как решение

Решение

ну а что тут переписывать? смотри.

1) добавишь библиотеку aforge
2) из неё высунешь контрол,который воспроизводит видео
3) инициализируешь видео,кодом который в первой цитате
4) добавишь обработчик события onNewFrame и готово)

http://www.aforgenet.com/artic... eo_vision/ вот тут примерчики
3
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
16.04.2010, 14:34  [ТС] 7
что за videoSourcePlayer1,откуда он взялся?
0
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
16.04.2010, 14:41 8
эт контрол,который добавляется на форму из библиотеки для воспроизведения видео
1
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
16.04.2010, 14:53  [ТС] 9
что то я его найти не могу.я совсем новичок в с шарп))))
0
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
16.04.2010, 15:39 10
Лучший ответ Сообщение было отмечено как решение

Решение

зайди на панель элементов для формы,щелкни на ней правой кнопкой и выбери вкладку "выбрать элементы",в компонентах net framework в фильтре напиши aforge.там в именах появятся контрол VideoSourcePlayer,выбирай его и жми ок.он появится на панели

Добавлено через 8 минут
кстати, за интересный ты проект взялся,судя из твоего блога на хабрахабре я тож занимаюсь сейчас управлением компьютером жестами
4
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
16.04.2010, 16:34  [ТС] 11
Цитата Сообщение от eugene0001 Посмотреть сообщение
зайди на панель элементов для формы,щелкни на ней правой кнопкой и выбери вкладку "выбрать элементы",в компонентах net framework в фильтре напиши aforge.там в именах появятся контрол VideoSourcePlayer,выбирай его и жми ок.он появится на панели

Добавлено через 8 минут
кстати, за интересный ты проект взялся,судя из твоего блога на хабрахабре я тож занимаюсь сейчас управлением компьютером жестами
ну у теюя посерьезней проектик)))
да я сейчас на полуготовом все леплю нада сдать через месяц.а вот будет время переделаю уже сам все напишу кроме алгоритма самого по разспознованию .а то на данный момент есть недостатки DEMO-mode))))
Но не многие заинтересовались этим вопросом)

Добавлено через 40 минут
все равно чето не получается((( сделал все как ты сказал и всеравно(
0
21 / 18 / 4
Регистрация: 07.02.2010
Сообщений: 59
16.04.2010, 17:09 12
а что именно не получается?
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
16.04.2010, 17:15  [ТС] 13
никакого эффекта((
вот что написал
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 FilterInfoCollection videodevices;
            VideoCaptureDevice videoSource;
            videodevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            videoSource = new VideoCaptureDevice(videodevices[0].MonikerString);
            videoSourcePlayer1.VideoSource = videoSource;
            videoSource.Start();
           
            private void videoSourcePlayer1_NewFrame(object sender, ref Bitmap image)
        {
            pictLastPhoto.Image = image;
            pictLastPhoto.Load(); 
  
        }
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
01.12.2010, 02:37 14
А можно как-то с помощью этой библиотеки еще и записывать видео с камеры?
0
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134
21.03.2012, 11:37 15
Ребята помогите пожалуйста
дело в том что я описал эвент NewFrame
однако он у меня не работает как не крути
как его вызвать после включения вебки?
без него как я понимаю незя вытащить изображение с videoSourcePlayer
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
21.03.2012, 12:43 16
А Вы ко всем событиям подписались?
0
 Аватар для daruwanov
77 / 58 / 8
Регистрация: 10.03.2011
Сообщений: 354
21.03.2012, 13:47 17
eugene0001, А вы случаем не из Украины? и не выступали с проектом по управлению жестами на GoldenByte
0
 Аватар для КиряК
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 22
01.06.2012, 08:40 18
Кто нибудь знает в чем ошибка?
Строка CONNECTING... идет, а картинки с камеры нет.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AForge.Video;
using AForge.Video.VFW;
using AForge.Vision;
using AForge.Video.DirectShow;
namespace LedTest
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }
        
        FilterInfoCollection videodevices;
        VideoCaptureDevice videoSource;
        private void button1_Click(object sender, EventArgs e)
        {
            
            videodevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            videoSource = new VideoCaptureDevice(videodevices[0].MonikerString);
            videoSourcePlayer.VideoSource = videoSource;
            videoSource.Start();
        }
        private void videoSourcePlayer_NewFrame(object sender, ref Bitmap image)
        {
        }
 
         
    }
}
0
11 / 11 / 2
Регистрация: 15.01.2012
Сообщений: 104
04.06.2012, 01:06 19
Цитата Сообщение от eugene0001 Посмотреть сообщение
зайди на панель элементов для формы,щелкни на ней правой кнопкой и выбери вкладку "выбрать элементы",в компонентах net framework в фильтре напиши aforge.там в именах появятся контрол VideoSourcePlayer,выбирай его и жми ок.он появится на панели
У меня отсутствует в компонентах библиотека, не подскажите как прикрутить её к студии?
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
04.06.2012, 02:48 20
КиряК, а где эта строка "CONNECTING..."? Я в коде её не вижу.
0
04.06.2012, 02:48
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2012, 02:48
Помогаю со студенческими работами здесь

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

Странное поведение avicap32.dll (Захват изображения с вебкамеры)
Есть программа на C#, которая должна сделать снимок с первой попавшейся веб камеры, и сохранить его в файл Test.jpg. using System; ...

Захват видео изображения с веб-камеры
Возникли проблемы при создании массива в C#.В общем дело обстоит так: имеется захват видео изображения с веб-камеры,необходимо сделать,...

Захват видеопотока с IP вебкамеры
Здравствуйте) собственно вопрос аналогичен названию темы) как захватить видеопоток с IP вебкамеры? (камера через Wi-fi подключена к...

Захват изображения с веб камеры используя AForge
Ребят помогите сделать снимок с веб камеры, есть код для записи видео с веб камеры: using System; using System.Collections.Generic; ...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Исследование байт-кода Python: подключаем дизассемблер
stackOverflow 19.02.2025
Многие знают, что Python - интерпретируемый язык, но мало кто задумывается о том, что происходит между написанием кода и его выполнением. На самом деле Python использует промежуточное представление. . .
Исследование байт-кода Python: компиляторы против интерпретаторов
stackOverflow 19.02.2025
Понимание байт-кода Python - основополагающий аспект для разработчиков, стремящихся глубже понять внутренние механизмы языка и оптимизировать производительность своих программ. Байт-код представляет. . .
Comprehensions в Python - что это такое?
stackOverflow 19.02.2025
Когда речь заходит о Python, одной из его самых красивых и мощных возможностей являются списковые включения или comprehensions. Это особые синтаксические конструкции, позволяющие создавать новые. . .
Python правда такой медленный? Развенчиваем миф о медлительности
stackOverflow 19.02.2025
Когда речь заходит о выборе языка программирования для нового проекта, вопрос производительности часто становится одним из ключевых факторов. Python, несмотря на свою популярность и простоту. . .
Динамические формы в Flask
stackOverflow 19.02.2025
Работа с веб-формами часто требует гибкости в отношении количества полей, которые пользователь может заполнить. Представьте ситуацию, когда вам нужно создать форму для ввода контактных данных, где у. . .
Обнаружение объектов в реальном времени на Raspberry Pi с OpenCV и Movidius NCS
stackOverflow 19.02.2025
Технология обнаружения объектов в реальном времени становится все более востребованной в различных областях - от систем безопасности до автономных транспортных средств. Особый интерес представляет. . .
где chromium хранит пароли и как их обнулить в пожарном варианте
jigi33 19.02.2025
Where is the chromium browser stores passwords for a sites где chromium-подобный браузер хранит пароли и как их обнулить в пожарном варианте (see screenshot)
howto get access to external internet resources with kinit
jigi33 19.02.2025
Решение проблемы с необходимостью доп. авторизации по Керберос для автоотработки аутентификации на прокси-сервер (see screenshot)
Отслеживание автомобилей и определение скорости с OpenCV и Python на Raspberry Pi
stackOverflow 19.02.2025
В этой статье мы рассмотрим создание системы отслеживания транспортных средств и определения их скорости с использованием компьютерного зрения и библиотеки OpenCV. Наше решение основано на принципе. . .
ENV (environments) valid paths in linux
jigi33 19.02.2025
Environments paths (see screenshot)
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru