Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
27.02.2011, 21:12     захват видео изображения с веб-камеры
  #1
Возникли проблемы при создании массива в C#.В общем дело обстоит так: имеется захват видео изображения с веб-камеры,необходимо сделать, чтобы по клику кнопочки, сохранялось текущее изображение с камеры в массив(чтобы это происходило каждый раз по клику)......Я так понимаю для хранения изображений необходимо создать byte массив и там уже размещать картинки...а как это сделать не пойму...помогите!!!!!!!
AdAgent
Объявления
27.02.2011, 21:12
kl14_11
Форумчанин
17 / 17 / 0
Регистрация: 02.11.2009
Сообщений: 118
27.02.2011, 21:30
  #2
Массив вот так создаётся:
Код C#
1
byte[] data = new byte[1024];
kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 07:58  [ТС]
  #3
Цитата Сообщение от kl14_11 Посмотреть сообщение
Массив вот так создаётся:
Код C#
1
byte[] data = new byte[1024];
как создавать то я знаю, а вот как туда размещать картинки, каждый раз кликая по кнопке, это проблема...
Евгений М.
Форумчанин
987 / 928 / 28
Регистрация: 28.02.2010
Сообщений: 2,678
Записей в блоге: 1
28.02.2011, 08:11
  #4
Попробуйте через ImageList.
Код C#
1
ImageList1.Images.Add(...)
kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 09:56  [ТС]
  #5
Возможно я как-то неправильно объяснил суть вопроса, но в общем попробую более подробнее пояснить

Код 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;
kl14_11
Форумчанин
17 / 17 / 0
Регистрация: 02.11.2009
Сообщений: 118
28.02.2011, 11:12
  #6
Как вы вообще получаете текущее изображение с камеры, в чём оно у вас хранится? В каком типе?
kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 11:22  [ТС]
  #7
Цитата Сообщение от kl14_11 Посмотреть сообщение
Как вы вообще получаете текущее изображение с камеры, в чём оно у вас хранится? В каком типе?
Изображение с камеры получаю с помощью подключаемой библиотеки WebCam_Capture.dll, потом оно транслируется через обычный picturebox и нигде оно не хранится.....Изображение идет в реалтайм....
lifestyle
Mobile Developer
216 / 212 / 4
Регистрация: 10.05.2009
Сообщений: 914
28.02.2011, 13:20
  #8
откуда помещается изображения в picturebox?из какого то stream'a или из массива?

Добавлено через 1 минуту
Цитата Сообщение от kill_s Посмотреть сообщение
Изображение с камеры получаю с помощью подключаемой библиотеки WebCam_Capture.dll, потом оно транслируется через обычный picturebox и нигде оно не хранится.....Изображение идет в реалтайм....
приведи код получения картинки с dll твоей pictureBox'у
AdAgent
Объявления
28.02.2011, 13:20
Casper-SC
Форумчанин
28.02.2011, 18:29
  #9

Не по теме:

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

kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
28.02.2011, 19:56  [ТС]
  #10
Вот код получения изображения с камеры:
Код 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 Посмотреть сообщение

Не по теме:



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

абсолютно бесплатна, а разве есть смысл от того бесплатна она или нет?
kl14_11
Форумчанин
17 / 17 / 0
Регистрация: 02.11.2009
Сообщений: 118
28.02.2011, 20:44
  #11
Возможно вам вместо обычного массива байт
Код 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;
С помощью битмапа и рисовать можно.
lifestyle
Mobile Developer
216 / 212 / 4
Регистрация: 10.05.2009
Сообщений: 914
01.03.2011, 00:19
  #12
Цитата Сообщение от 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-preobra...-obratno.zhtml
kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
02.04.2011, 19:14  [ТС]
  #13
Всем спасибо за помощь!!!!!!!!!!!!
Правда у меня теперь другой вопрос? а как мне сделать теперь наложение двух картинок?Рассматриваемые ранее здесь на форуме методы не помогли(или я просто их не понимаю)...помогите. разъясните код(взято вот тут) :
Код 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
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;
}
 
я понимаю что это функция, но как ее теперь прицепить к классу новому?
класс я создал, а вот эту функцию потом не могу вызвать из другого модуля программы, хотя вроде бы все подключил, просто когда пытаешься вызвать этот класс, он вызывается, но только там нету такой функции...а она написана в нем...что делать, как быть?помогите люди добрые!!!!!!!!
kl14_11
Форумчанин
17 / 17 / 0
Регистрация: 02.11.2009
Сообщений: 118
02.04.2011, 20:26
  #14
Возможно вы объявили функцию как static, тогда вам надо обращаться к ней не через экземпляр класса, а через имя класса. static-член один для всех экземпляров.
Или наоборот не static, тогда вам надо вначале создать экземпляр класса и через него к ней обращаться.
kill_s
Новичок
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 38
02.04.2011, 21:30  [ТС]     захват видео изображения с веб-камеры
  #15
Всем спасибо!!! проблема решена!!!!но тема еще не закрыта )))))
Yandex
Объявления
02.04.2011, 21:30
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
C++ Linux Захват видео с веб-камеры
Ребят, подскажите с чего начать. Хочу написать прогу, которая для начала должна выводить видео в окошке, как при использовании openCV. Подскажите какие-нибудь статьи и примеры, а лучше план по...
С++ под Linux Mapcicc 02.04.2014 03:22
C# Получить изображение с веб-камеры
Добрый вечер! Нужно получить изображение с веб-камеры. Отлично справляется с этим библиотека Aforge.net, но мне нужно разработать свою для коммерческого пользования. Обязательно должен быть выбор...
C# для начинающих zepars 19.11.2013 22:13
C# Захват аудио
Доброго времени суток ! Хочу узнать, если возможно, как захватить голос или звук с микрофона для дальнейшей его обработки.
C# для начинающих Maratovich 06.11.2013 22:26
Delphi Захват изображения с веб-камеры
Привет всем! Накипело, много статеек пересмотрел как это сделать, везде свои касяки, т.к. статейки-то страые. Ну в общем как захватить изборажение с веб-камеры и вывести его в image/panel ??
Delphi для начинающих king555-55 03.06.2013 20:57
C# Захват фрейма с веб камеры
Я в программирование не очень силен. Как сохранять кадр в виде картинке разобрался, а вот как последующие не знаю.int num = 0; for (int s = 0; s == num ; s++) ...
C# для начинающих Serega1990 24.04.2013 19:02
C# Как получить фото с веб-камеры Logitech
Здравствуйте ! Можно ли как-нибудь в программе на C# (Visual Studio 2010, .Net 4) получить фото с веб-камеры Logitech ? Минимум: сфотографировать кадр и записать в файл. Максимум: иметь доступ к...
C# для начинающих Win-ni 28.02.2013 22:05
C# .NET 4.x Захват курсора мыши из игры.
Здравствуйте. Возникла проблема с захватом курсора из игры(World of Warcraft). Использую команду: image = Direct3DCapture.CaptureWindow(Main.getHWND()); //Захватили изображение из игры Graphics...
C# для начинающих Hellmapper 05.11.2011 01:01
C# WinForms Захват видео с веб-камеры через интернет
Доброе время суток В общем-то проблема описана в теме, нужно скачать видео веб-камеры, или же обрабатывать онлайн. Например с этой веб-камеры http://www.afishakr.com/webcam_plazza.html Заранее...
C# Windows Forms Legend-muay 17.12.2010 18:02
Опции темы

Текущее время: 04:09. Часовой пояс GMT +4.

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