В настоящее время я работаю над проектом, который использует распознавание лиц.
Поэтому мне нужен способ показа изображений с веб-камеры пользователю, чтобы он мог настроить свое лицо.
Я много чего пытался получить изображения с веб-камеры, используя как можно меньше ЦП:
Но ни один из них не был в порядке ... Либо слишком медленный, либо слишком ресурсоемкий процессорный ресурс.
Затем я попробовал библиотеку Emgu , и я чувствовал себя прекрасно по этому поводу.
Сначала я попробовал это в проекте Windows Form и обновлял изображение в Picture Box .
Но затем, когда я попытался интегрировать его в мой проект WPF, я застрял на том, как передать свое изображение в мой элемент управления изображениями.
Прямо сейчас у меня есть следующий исходный код:
<Window x:Class="HA.FacialRecognition.Enroll.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Width="800" Height="600"
Loaded="Window_Loaded" Closing="Window_Closing">
<Grid>
<Image x:Name="webcam" Width="640" Height="480" >
<Image.Clip>
<EllipseGeometry RadiusX="240" RadiusY="240">
<EllipseGeometry.Center>
<Point X="320" Y="240" />
</EllipseGeometry.Center>
</EllipseGeometry>
</Image.Clip>
</Image>
</Grid>
</Window>
И код позади:
private Capture capture;
private System.Timers.Timer timer;
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
capture = new Capture();
capture.FlipHorizontal = true;
timer = new System.Timers.Timer();
timer.Interval = 15;
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Start();
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
using (Image<Bgr, byte> frame = capture.QueryFrame())
{
if (frame != null)
{
var bmp = frame.Bitmap;
// How do I pass this bitmap to my Image control called "webcam"?
}
}
}
private void Window_Closing(object sender, CancelEventArgs e)
{
if (capture != null)
{
capture.Dispose();
}
}
Я предполагал использовать BitmapSource / WriteableBitmap, но я не получил их работу ...
Спасибо!