Я делаю свое приложение для временной привязки веб-камеры, но имею проблемы с некоторыми веб-камерами. Тот, в частности, рекламирует, что он может принимать 5MP-фотографии, но он запускает собственный 320x240 (или что-то ужасное), которое является фидом, который я получаю.Проблемы с разрешением захвата веб-камеры
Я использую код, который, кажется, хорошо скопировать и вставить через сеть, воплощение Я использую для доступа к веб-камере здесь http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1339&lngWId=10 и использует avicap32 для доступа к веб-камера, вызов, глядя как этот
mCapHwnd = capCreateCaptureWindowA("WebCap", 0, 0, 0, m_Width, m_Height, this.Handle.ToInt32(), 0);
SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0);
SendMessage(mCapHwnd, WM_CAP_SET_PREVIEW, 0, 0);
Я тестировал с двумя другими веб-камер (один в встроенный в моем ноутбуке, один старичок я пиная вокруг) и оба эти, кажется, получают солидные решения.
Я изменил код Webcam_Capture, чтобы попытаться взять смехотворно высокое разрешение изображения
//private int m_Width = 320;
//private int m_Height = 240;
private int m_Width = 1600;
private int m_Height = 1200;
//private int m_Width = 3200;
//private int m_Height = 2400;
, используя несколько различных разрешений, как показано выше.
Моя кишка говорит мне, что мне нужно что-то сделать, чтобы веб-камера использовала другое разрешение, поскольку она, по-видимому, не соответствует некоторому собственному значению.
Мысли?
Я был бы рад опубликовать больше кода, который я использую, но это похоже на его мясо. WM_SET_PREVIEW может потребоваться объяснение, это константа API.
public const int WM_CAP_CONNECT = 1034;
public const int WM_CAP_DISCONNECT = 1035;
public const int WM_CAP_GET_FRAME = 1084;
public const int WM_CAP_COPY = 1054;
public const int WM_CAP_START = WM_USER;
public const int WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41;
public const int WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42;
public const int WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43;
public const int WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44;
public const int WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45;
public const int WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46;
public const int WM_CAP_SET_PREVIEW = WM_CAP_START + 50;
Любые идеи приветствуются! robg
Я предполагаю, что вам нужно спросить его о неподвижных кадрах, а не о видео. –
@Anon - Интересно, что это делает WM_SET_PREVIEW. http://msdn.microsoft.com/en-us/library/dd743928(VS.85).aspx Я рассматривал другие доступные константы, но никогда не бывает легко увидеть, как они связаны robg – 2010-01-11 21:54:52
Согласен с Anon, 5MB ** Фотографии ** ничего не говорят о разрешении видео. – tster