void BtCreateSamplesClick(object sender, EventArgs e) { if (_folderSelected==DialogResult.OK) { foreach (string jpg in Directory.GetFiles( Path.GetFullPath(txtPicturesFolder.Text),"*.jpg")) { Sample nextSample = new Sample(_updatedStation.Lat, _updatedStation.Lon, jpg); //OCR template for presure in inHg OCR_Template ocrPres=new OCR_Template("ocrPres","Moultrie Game Camera", new Rectangle(71,2018,225,96),new Size(2848,2136)); //OCR template for temp in ºC OCR_Template ocrTemp=new OCR_Template("ocrTemp","Moultrie Game Camera", new Rectangle(847,2024,196,111),new Size(2848,2136)); nextSample.OCR_Observations_list.Add(new DoubleObservation("Pressure (inHg)","",ocrPres)); nextSample.OCR_Observations_list.Add(new IntegerObservation("Temperature (ºC)","",ocrTemp)); nextSample.Species_Observations_list.Add(new SpeciesObservation("Species","Pending",0)); nextSample.RunOCR(nextSample.OCR_Observations_list); Image nextImage = Image.FromFile(jpg); foreach(Station st in _updatedProject.StationsList) { if(st.Guid==_updatedStation.Guid) { st.SamplesList.Add(nextSample); } } ProjectDAO.InsertImage(_updatedProject.Name, nextSample.Guid, ConversionUtilities.ImageToBase64(nextImage, System.Drawing.Imaging.ImageFormat.Jpeg)); } ProjectDAO.UpdateProject(_updatedProject.Name,_updatedProject); } }
private void refreshViewData(Sample currentSample) { try { //Refresh the listview lstViewData.Items.Clear(); lstViewData.Columns.Clear(); ColumnHeader columnheader; // Used for creating column headers. ListViewItem listviewitem; // Used for creating listview items. // Ensure that the view is set to show details. lstViewData.View = View.Details; listviewitem = new ListViewItem("Camera Model"); listviewitem.SubItems.Add(_currentSample.CameraModel); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Camera Manufacturer"); listviewitem.SubItems.Add(_currentSample.CameraManufacturer); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Image Height"); listviewitem.SubItems.Add(_currentSample.Height.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Image Width"); listviewitem.SubItems.Add(_currentSample.Width.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Vertical Resolution"); listviewitem.SubItems.Add(_currentSample.VerticalResolution.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Horizontal Resolution"); listviewitem.SubItems.Add(_currentSample.HorizontalResolution.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Date"); listviewitem.SubItems.Add(_currentSample.DateTime.Date.ToShortDateString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Time"); listviewitem.SubItems.Add(_currentSample.DateTime.TimeOfDay.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Latitude"); listviewitem.SubItems.Add(_currentSample.Lat.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Longitude"); listviewitem.SubItems.Add(_currentSample.Lon.ToString()); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Day Or Night"); listviewitem.SubItems.Add(_currentSample.DayOrNight); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem("Moon Phase"); listviewitem.SubItems.Add(_currentSample.MoonPhase); this.lstViewData.Items.Add(listviewitem); foreach (Observation obs in _currentSample.OCR_Observations_list) { listviewitem = new ListViewItem(obs.Name); listviewitem.SubItems.Add(obs.Value.ToString()); this.lstViewData.Items.Add(listviewitem); } foreach (SpeciesObservation obs in _currentSample.Species_Observations_list) { SpeciesObservation specie = (SpeciesObservation)obs; listviewitem = new ListViewItem(specie.Name); listviewitem.SubItems.Add(specie.Value.ToString()); listviewitem.Font = new Font(listviewitem.Font, FontStyle.Bold); this.lstViewData.Items.Add(listviewitem); listviewitem = new ListViewItem(specie.Name+ " count"); listviewitem.SubItems.Add(specie.Count.ToString()); listviewitem.Font = new Font(listviewitem.Font, FontStyle.Bold); this.lstViewData.Items.Add(listviewitem); } // Create some column headers for the data. columnheader = new ColumnHeader(); columnheader.Text = "Prop"; this.lstViewData.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Value"; this.lstViewData.Columns.Add(columnheader); // Loop through and size each column header to fit the column header text. foreach (ColumnHeader ch in this.lstViewData.Columns) { ch.Width = -2; } } catch (Exception ex) { throw ex; } }
void TvProjectAfterSelect(object sender, TreeViewEventArgs e) { try { if(tvProject.SelectedNode.Tag.GetType() == typeof(Station)) { _currentStation= (Station)tvProject.SelectedNode.Tag; pictureBox1.Image= CameratrapManager_db.ProjectDAO.GetCurrentImage(_currentProject.Name,_currentStation.Guid); refreshViewData(_currentStation); } else if(tvProject.SelectedNode.Tag.GetType() == typeof(Sample)) { _currentSample=(Sample)tvProject.SelectedNode.Tag; _currentStation= (Station)tvProject.SelectedNode.Parent.Tag; pictureBox1.Image= CameratrapManager_db.ProjectDAO.GetCurrentImage(_currentProject.Name,_currentSample.Guid); refreshViewData(_currentSample); } } catch (Exception ex) { throw ex; } }
void UploadSamplesToStation() { try { FolderBrowserDialog selectPicturesFolderDialog=new FolderBrowserDialog(); selectPicturesFolderDialog.ShowNewFolderButton = false; if (selectPicturesFolderDialog.ShowDialog()==DialogResult.OK) { foreach (string jpg in Directory.GetFiles( selectPicturesFolderDialog.SelectedPath,"*.jpg")) { Sample nextSample = new Sample(_currentStation.Lat, _currentStation.Lon, jpg); //OCR template for presure in inHg OCR_Template ocrPres=new OCR_Template("ocrPres","Moultrie Game Camera", new Rectangle(71,2018,225,96),new Size(2848,2136)); //OCR template for temp in ºC OCR_Template ocrTemp=new OCR_Template("ocrTemp","Moultrie Game Camera", new Rectangle(847,2024,196,111),new Size(2848,2136)); nextSample.OCR_Observations_list.Add(new DoubleObservation("Pressure (inHg)","",ocrPres)); nextSample.OCR_Observations_list.Add(new IntegerObservation("Temperature (ºC)","",ocrTemp)); nextSample.Species_Observations_list.Add(new SpeciesObservation("Species","Pending",0)); nextSample.RunOCR(nextSample.OCR_Observations_list); Image nextImage = Image.FromFile(jpg); foreach(Station st in _currentProject.StationsList) { if(st.Guid==_currentStation.Guid) { st.SamplesList.Add(nextSample); } } ProjectDAO.InsertImage(_currentProject.Name, nextSample.Guid, ConversionUtilities.ImageToBase64(Main_processing.ResizeImage(nextImage), System.Drawing.Imaging.ImageFormat.Jpeg)); } ProjectDAO.UpdateProject(_currentProject.Name,_currentProject); } } catch (Exception ex) { throw ex; } }
void ExitApplication() { try { DialogResult result = MessageBox.Show("Would you like to save your changes?", "Save project?", MessageBoxButtons.YesNo,MessageBoxIcon.Question); if (result == DialogResult.Yes) { ProjectDAO.UpdateProject(_currentProject.Name,_currentProject); ProjectDAO.RemoveOrphanImages(_currentProject); tvProject.Dispose(); pictureBox1.Dispose(); _currentProject=null; _currentStation=null; _currentSample=null; lstViewData.Dispose(); dgvSelectSpecies.Dispose(); } else if (result == DialogResult.Cancel) { // Stop the closing and return to the form // e.Cancel = true; } } catch (Exception ex) { throw ex; } }
void CloseProjectToolStripMenuItemClick(object sender, EventArgs e) { try { DialogResult result = MessageBox.Show("Would you like to save your changes?","Save project?", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question); if (result == DialogResult.Yes) { ProjectDAO.UpdateProject(_currentProject.Name,_currentProject); ProjectDAO.RemoveOrphanImages(_currentProject); } else if (result == DialogResult.Cancel) { // Stop the closing and return to the form // e.Cancel = true; } else { tvProject.Nodes.Clear(); pictureBox1.Image=null; _currentProject=null; _currentStation=null; _currentSample=null; lstViewData.Clear(); dgvSelectSpecies.DataSource=null; speciesList.Rows.Clear(); } } catch (Exception ex) { throw ex; } }