Как я могу отслеживать последовательность изображений
Я хочу отследить 265 последовательных изображений, которые сохранились в "D:\\Resources\\Sequence"
Я получаю предупреждение, что
videoCaptureникогда не назначается и всегда будет иметь значение по умолчанию null...и когда я запускаю его, я получаю это сообщение "
"Cannot find any camera!"- ...Я не знаю, как решить эту проблему ... не могли бы вы мне помочь ... спасибо
Я написал этот код:
Что я уже пробовал:
namespace Tracking2 { public partial class Form1 : Form { ImageStreamReader videoCapture; public Form1() { InitializeComponent(); #if FILE_CAPTURE roi = new Rectangle(115, 220, 30, 15); //user defined rectangle for sample video isROISelected = true; #endif initalizeHistograms(); //create histograms try { #if FILE_CAPTURE string videoDir = "D:\\Resources\\Sequence"; videoCapture = new ImageDirectoryCapture(videoDir, "*.jpg"); #else videoCapture = new CameraCapture(0); #endif } catch (Exception) { MessageBox.Show("Cannot find any camera!"); return; } this.FormClosing += CamshiftDemo_FormClosing; Application.Idle += videoCapture_InitFrame; videoCapture.Open(); } Bgr<byte>[,] frame = null; void videoCapture_InitFrame(object sender, EventArgs e) { videoCapture.ReadTo(ref frame); if (frame == null) return; videoCapture.Seek(-1, SeekOrigin.Current); if (isROISelected) { initTracking(frame); Application.Idle -= videoCapture_InitFrame; Application.Idle += videoCapture_NewFrame; } else { frame.Draw(roi, Bgr<byte>.Blue, 3); } this.pictureBox.Image = frame.ToBitmap(); GC.Collect(); } void videoCapture_NewFrame(object sender, EventArgs e) { videoCapture.ReadTo(ref frame); if (frame == null) return; if (!isROISelected) { Application.Idle += videoCapture_InitFrame; Application.Idle -= videoCapture_NewFrame; return; } long start = DateTime.Now.Ticks; Rectangle prevSearchArea = searchArea; bool isPredicted = nonVisibleCount > 0; Gray<byte>[,] probabilityMap; Box2D foundBox; trackOneStep(frame, out probabilityMap, out foundBox); long end = DateTime.Now.Ticks; long elapsedMs = (end - start) / TimeSpan.TicksPerMillisecond; frame.Draw("Processed: " + elapsedMs + " ms", font, new Point(25, 20), Bgr<byte>.Green); this.pictureBox.Image = frame.ToBitmap(); this.pbProbabilityImage.Image = probabilityMap.ToBitmap(); GC.Collect(); System.Threading.Thread.Sleep(25); }
F-ES Sitecore
Если код "try" в Form1() терпит неудачу и попадает в ловушку, происходит изменение, которое videoCapture останется неназначенным. Вероятно, это и есть источник предупреждения, и вы можете исправить это, добавив "videoCapture = null;" перед "return" в блоке catch.
Хотя я сомневаюсь, что это решит вашу проблему с тем, чтобы не найти камеру.