Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/78: Рейтинг темы: голосов - 78, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38

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

27.02.2011, 21:12. Показов 14564. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникли проблемы при создании массива в C#.В общем дело обстоит так: имеется захват видео изображения с веб-камеры,необходимо сделать, чтобы по клику кнопочки, сохранялось текущее изображение с камеры в массив(чтобы это происходило каждый раз по клику)......Я так понимаю для хранения изображений необходимо создать byte массив и там уже размещать картинки...а как это сделать не пойму...помогите!!!!!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2011, 21:12
Ответы с готовыми решениями:

Захват фрейма с веб камеры
Я в программирование не очень силен. Как сохранять кадр в виде картинке разобрался, а вот как последующие не знаю.int num = 0; ...

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

Запись видео с веб камеры
Добрый день! Есть некая программа, к которой с помощью библиотеки Aforge.net подключена веб камера. В интернете нашел способ выводить...

14
19 / 19 / 13
Регистрация: 02.11.2009
Сообщений: 118
27.02.2011, 21:30
Массив вот так создаётся:
C#
1
byte[] data = new byte[1024];
0
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 07:58  [ТС]
Цитата Сообщение от kl14_11 Посмотреть сообщение
Массив вот так создаётся:
C#
1
byte[] data = new byte[1024];
как создавать то я знаю, а вот как туда размещать картинки, каждый раз кликая по кнопке, это проблема...
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.02.2011, 08:11
Попробуйте через ImageList.
C#
1
ImageList1.Images.Add(...)
0
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 09:56  [ТС]
Возможно я как-то неправильно объяснил суть вопроса, но в общем попробую более подробнее пояснить

C#
1
2
3
4
5
6
private void button4_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = pictureBox1.Image;
            savear = new byte[1024];
            pictureBox2.Image = savear;
        }
я делаю так вот.....А он мне пишет, Неявное преобразование типа "byte[]" в "System.Drawing.Image" невозможно .....

то делать? как быть?

Добавлено через 3 минуты
Цитата Сообщение от Евгений М. Посмотреть сообщение
Попробуйте через ImageList.
C#
1
ImageList1.Images.Add(...)
насколько мне известно в ImageList можно добавлять существующие картинки, а у меня их нет, они появляются только после того, как кликнешь по кнопке, то есть:
C#
1
pictureBox2.Image = pictureBox1.Image;
0
19 / 19 / 13
Регистрация: 02.11.2009
Сообщений: 118
28.02.2011, 11:12
Как вы вообще получаете текущее изображение с камеры, в чём оно у вас хранится? В каком типе?
0
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 11:22  [ТС]
Цитата Сообщение от kl14_11 Посмотреть сообщение
Как вы вообще получаете текущее изображение с камеры, в чём оно у вас хранится? В каком типе?
Изображение с камеры получаю с помощью подключаемой библиотеки WebCam_Capture.dll, потом оно транслируется через обычный picturebox и нигде оно не хранится.....Изображение идет в реалтайм....
0
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
28.02.2011, 13:20
откуда помещается изображения в picturebox?из какого то stream'a или из массива?

Добавлено через 1 минуту
Цитата Сообщение от kill_s Посмотреть сообщение
Изображение с камеры получаю с помощью подключаемой библиотеки WebCam_Capture.dll, потом оно транслируется через обычный picturebox и нигде оно не хранится.....Изображение идет в реалтайм....
приведи код получения картинки с dll твоей pictureBox'у
0
28.02.2011, 18:29

Не по теме:

Цитата Сообщение от kill_s Посмотреть сообщение
Изображение с камеры получаю с помощью подключаемой библиотеки WebCam_Capture.dll, потом оно транслируется через обычный picturebox и нигде оно не хранится.....Изображение идет в реалтайм....
Она бесплатна для коммерческого использования?

0
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 19:56  [ТС]
Вот код получения изображения с камеры:
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
 class Cam
    {
        private int FrameNumber = 30;
        private WebCamCapture webcam;
        private System.Windows.Forms.PictureBox _FrameImage;
        public void InitializeWebCam(ref System.Windows.Forms.PictureBox ImageControl)
        {
            webcam = new WebCamCapture();
            webcam.FrameNumber = ((ulong)(0ul));
            webcam.TimeToCapture_milliseconds = FrameNumber;
            webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);
            _FrameImage = ImageControl;
        }
 
        void webcam_ImageCaptured(object source, WebcamEventArgs e)
        {
            _FrameImage.Image = e.WebCamImage;
        }
 
        public void start()
        {
            webcam.TimeToCapture_milliseconds = FrameNumber;
            webcam.Start(0);
        }
вот так вот это выглядит.......блин...неужели я совсем плохо все объясняю?......мне просто надо, что бы по клику картинка помещалась в массив,для дальнейшей обработки ее...

C#
1
2
3
4
5
6
 private void button4_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = pictureBox1.Image;
            savear = new byte[1024];
            pictureBox2.Image = savear;
            }
Вот, то что я хотел сделать сам, но выдается ошибка...про неявное преобразование byte System.Drawing.Image невозможно.....в общем что делать не знаю......ведь надо то всего из picturebox1 передать изображение во второй picturebox и сохранить в массив....

Добавлено через 53 секунды
Цитата Сообщение от Casper-SC Посмотреть сообщение

Не по теме:



Она бесплатна для коммерческого использования?

абсолютно бесплатна, а разве есть смысл от того бесплатна она или нет?
0
19 / 19 / 13
Регистрация: 02.11.2009
Сообщений: 118
28.02.2011, 20:44
Возможно вам вместо обычного массива байт
C#
1
savear = new byte[1024];
стоит использовать
C#
1
Bitmap savear = new Bitmap(200, 100);
Класс Bitmap - карта бит, её можно присваивать Image
C#
1
2
3
pictureBox2.Image = pictureBox1.Image;
            Bitmap savear = new Bitmap(200, 100);
            pictureBox2.Image = savear;
С помощью битмапа и рисовать можно.
1
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
01.03.2011, 00:19
Цитата Сообщение от kill_s Посмотреть сообщение
Вот код получения изображения с камеры:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[FONT=monospace]class Cam
    {         private int FrameNumber = 30; 
        private WebCamCapture webcam;       
  private System.Windows.Forms.PictureBox _FrameImage;  
       public void InitializeWebCam(ref System.Windows.Forms.PictureBox ImageControl)    
     {            
 webcam = new WebCamCapture();     
        webcam.FrameNumber = ((ulong)(0ul));         
    webcam.TimeToCapture_milliseconds = FrameNumber; 
            webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);  
           _FrameImage = ImageControl;     
    }          
 void webcam_ImageCaptured(object source, WebcamEventArgs e)     
    {          
   _FrameImage.Image = e.WebCamImage;     
    }       
    public void start()    
     {             webcam.TimeToCapture_milliseconds = FrameNumber;      
      webcam.Start(0);       
  }
[/FONT]


вот так вот это выглядит.......блин...неужели я совсем плохо все объясняю?......мне просто надо, что бы по клику картинка помещалась в массив,для дальнейшей обработки ее...


C#
1
2
3
4
5
6
7
8
[FONT=monospace]
private void button4_Click(object sender, EventArgs e)     
    {        
     pictureBox2.Image = pictureBox1.Image;    
         savear = new byte[1024];          
   pictureBox2.Image = savear;           
  }
[/FONT]
Вот, то что я хотел сделать сам, но выдается ошибка...про неявное преобразование byte System.Drawing.Image невозможно.....в общем что делать не знаю......ведь надо то всего из picturebox1 передать изображение во второй picturebox и сохранить в массив....

Добавлено через 53 секунды


абсолютно бесплатна, а разве есть смысл от того бесплатна она или нет?
а какие мемберы у _FrameImage, не ужели нету никакого типа data или байтового массива?? это раз.
два советую тебе для обработки изображения все же заюзать EMGU дотнетовская обертка для openCV -классная и удобная штука , сам ее сейчас использую в проекте.
и три во ттебе универсальный инструмент
http://wsp.beon.ru/24778-086-p... atno.zhtml
0
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
02.04.2011, 19:14  [ТС]
Всем спасибо за помощь!!!!!!!!!!!!
Правда у меня теперь другой вопрос? а как мне сделать теперь наложение двух картинок?Рассматриваемые ранее здесь на форуме методы не помогли(или я просто их не понимаю)...помогите. разъясните код(взято вот тут) :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static Bitmap MakeImage(Size ImgSize, Bitmap foreImg, Bitmap backImg, byte s)
{
    // ImgSize = размер картинки-результата, обе исходные картинки приводятся к указанному размеру
    // s прозрачность накладываемого изображения foreImg от 0 (100%) до 255 (0%)
    // результат наследует Альфа-канал фонового изображения
    // наложение использует Альфа-канал накладываемого изображения
    Bitmap fimg = new Bitmap(foreImg, ImgSize);
    Bitmap bimg = new Bitmap(backImg, ImgSize);
    Bitmap bmp = new Bitmap(ImgSize.Width, ImgSize.Height);
    for (int i = 0; i < bmp.Width; i++)
        for (int j = 0; j < bmp.Height; j++)
        {
            Color fm = fimg.GetPixel(i, j);
            Color bm = bimg.GetPixel(i, j);
            byte af = (byte)(fm.A * s / byte.MaxValue);
            byte a = bm.A;
            byte r = (byte)((fm.R * af + bm.R * (byte.MaxValue - af)) / byte.MaxValue);
            byte g = (byte)((fm.G * af + bm.G * (byte.MaxValue - af)) / byte.MaxValue);
            byte b = (byte)((fm.B * af + bm.B * (byte.MaxValue - af)) / byte.MaxValue);
            bmp.SetPixel(i, j, Color.FromArgb(a, r, g, b));
        }
    return bmp;
}
я понимаю что это функция, но как ее теперь прицепить к классу новому?
класс я создал, а вот эту функцию потом не могу вызвать из другого модуля программы, хотя вроде бы все подключил, просто когда пытаешься вызвать этот класс, он вызывается, но только там нету такой функции...а она написана в нем...что делать, как быть?помогите люди добрые!!!!!!!!
0
19 / 19 / 13
Регистрация: 02.11.2009
Сообщений: 118
02.04.2011, 20:26
Возможно вы объявили функцию как static, тогда вам надо обращаться к ней не через экземпляр класса, а через имя класса. static-член один для всех экземпляров.
Или наоборот не static, тогда вам надо вначале создать экземпляр класса и через него к ней обращаться.
1
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
02.04.2011, 21:30  [ТС]
Всем спасибо!!! проблема решена!!!!но тема еще не закрыта )))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2011, 21:30
Помогаю со студенческими работами здесь

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

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

Необходимо организовать захват отдельного кадра (а не видео) с камеры
Необходимо организовать захват отдельного кадра (а не видео) с камеры, при чём сделать это максимально быстро и сохранить его на диск......

Видео с веб камеры
Как получить видео с веб камеры в С# без сторонних библиотек типа Emgu?

Как сохранять видео с веб-камеры
Нужно сохранять видео с веб-камеры в MP4 формате. нужно в mp4 так как WMV формат не годится для проигрывания на веб-сайтах.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru