Как получить дату для каждого изображения, захваченного в папке, используя C # - PullRequest
0 голосов
/ 10 мая 2019

Я занимаюсь системой распознавания номерных знаков.Я настроил свою камеру на захват изображения каждые 10 секунд и сохранил его в папке.Могу ли я узнать, как получить или получить дату и время и показать их в метке для каждого изображения, захваченного в папке.Я использую C # для кодирования, а также использую USB-камеру для захвата изображения

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private FilterInfoCollection CaptureDevices;
        private VideoCaptureDevice videoSource;
        private Int32 pictureCount = 0;

        private void Form1_Load(object sender, EventArgs e)
        {
            CaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo Device in CaptureDevices)
            {
                cboDevice.Items.Add(Device.Name);
            }
            cboDevice.SelectedIndex = 0;
            videoSource = new VideoCaptureDevice();

            timer1.Tick += new EventHandler(this.timer1_Tick);
            timer1.Interval = (100) * (100);
            timer1.Enabled = true;
            timer1.Start();

            videoSource = new VideoCaptureDevice(CaptureDevices[cboDevice.SelectedIndex].MonikerString);
            videoSource.NewFrame += new NewFrameEventHandler(videoSource_NewFrame);
            videoSource.Start();

        }

        void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
        {
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            pictureBox1.Image.Save(pictureCount.ToString() + ".jpg", ImageFormat.Jpeg);
            pictureCount++;
        }

    }

Я ожидаю, что к моменту съемки изображения на этикетке будут автоматически отображаться дата и времязахваченное изображение.

1 Ответ

0 голосов
/ 11 мая 2019

Вы можете написать сериализуемый объект и сохранить / загрузить его в / из файла.

    private void SampleLoadPicture(string fileName)
    {
        var imageDate = ImageDate.Load(fileName);
        // Store in a database:
        // imageDate.CapturedImage;
        // imageDate.CapturedDateTime;
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        var imageDate = new ImageDate((Bitmap)pictureBox1.Image, DateTime.Now);
        imageDate.Save(pictureCount.ToString() + ".IMGDATE");
        pictureCount++;
    }
    [Serializable]
    public class ImageDate
    {
        public Bitmap CapturedImage { get; set; }
        public DateTime CapturedDateTime { get; set; }
        public void Save(string fileName)
        {
            using (FileStream fs = new FileStream(fileName, FileMode.Create))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(fs, this);
            }
        }
        public static ImageDate Load(string fileName)
        {
            using (FileStream fs = new FileStream(fileName, FileMode.Open))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                return (ImageDate)formatter.Deserialize(fs);
            }
        }
        public ImageDate() { }
        public ImageDate(Bitmap capturedImage, DateTime capturedDateTime)
        {
            CapturedImage = capturedImage;
            CapturedDateTime = capturedDateTime;
        }
    }
...