public ViewerPage() { this.InitializeComponent(); DataContext = AppState.Current; SampleFrame.Navigated += SampleFrame_Navigated; SampleFrame.Navigate(typeof(SamplesPage)); }
private async void GetById() { SampleFrameM actual; var expectedFields = new[] { FieldEnum.StatId, FieldEnum.Name }; var expectedPredicate = CreateExpressionGroup(); var expected = new SampleFrame { Fields = JsonConvert.SerializeObject(expectedFields), Name = "test", Description = "SF test", Predicate = JsonConvert.SerializeObject(expectedPredicate), User = new User { UserName = "******" } }; using (var context = InMemoryDb.CreateDbContext()) { context.SampleFrames.Add(expected); await context.SaveChangesAsync(); actual = await new SampleFramesService(context, null).GetById(expected.Id, (await context.Users.FirstOrDefaultAsync()).Id); } Assert.Equal(expected.Name, actual.Name); Assert.Equal(expected.Description, actual.Description); Assert.Equal(expectedFields[0], actual.Fields.First()); Assert.Equal(expectedFields[1], actual.Fields.Last()); Assert.Equal(expectedPredicate.Groups.Count(), actual.Predicate.Groups.Count()); }
private void cmbASCDL_TextChanged(object sender, EventArgs e) { string filePath = cmbASCDL.Text.TrimEnd(); FileInfo file = new FileInfo(filePath); string fileHdr = filePath.Replace(file.Extension, ".hdr"); try { if (File.Exists(fileHdr)) { SampleData.classNames = SampleFrame.GetClassFromHdr(fileHdr); this.cmbDestination.Properties.Items.Clear(); this.cmbDestination.Properties.Items.AddRange(SampleData.classNames); } else { SampleData.classNames = SampleFrame.GetClassFromRaster(filePath); this.cmbDestination.Properties.Items.Clear(); this.cmbDestination.Properties.Items.AddRange(SampleData.classNames); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.WriteLog(typeof(frmSampleFrame), ex); } }
void updateCosts(SampleFrame frame, ComputeShader cs) { int kernel = cs.FindKernel("CSMain"); uint threadX, threadY, threadZ; cs.GetKernelThreadGroupSizes(kernel, out threadX, out threadY, out threadZ); cs.SetInt("_width", Image.width); cs.SetInt("_height", Image.height); cs.SetInt("_depth", depth); cs.SetInt("_texWidth", CostVolume.width); cs.SetInt("_texHeight", CostVolume.height); cs.SetFloat("_invDepthMax", invDepthMax); cs.SetFloat("_invDepthMin", invDepthMin); Matrix4x4 keyframeToSample = frame.CameraToWorld.inverse * CameraToWorld; Matrix4x4 invIntrinsics = Intrinsics.inverse; cs.SetVector("_intrinsics", new Vector4(Intrinsics.m00, Intrinsics.m11, Intrinsics.m02, Intrinsics.m12)); cs.SetVector("_invIntrinsics", new Vector4(invIntrinsics.m00, invIntrinsics.m11, invIntrinsics.m02, invIntrinsics.m12)); cs.SetVector("_keyframeToSampleR0", keyframeToSample.GetRow(0)); cs.SetVector("_keyframeToSampleR1", keyframeToSample.GetRow(1)); cs.SetVector("_keyframeToSampleR2", keyframeToSample.GetRow(2)); cs.SetTexture(kernel, "KeyframeImg", Image); cs.SetTexture(kernel, "SampleImg", frame.Image); cs.SetTexture(kernel, "Result", CostVolume); cs.Dispatch(kernel, Mathf.CeilToInt((float)CostVolume.width / (float)threadX), Mathf.CeilToInt((float)CostVolume.height / (float)threadY), (int)threadZ); }
private void AppBarButton_Click(object sender, RoutedEventArgs e) { if (SampleFrame.CanGoBack) { SampleFrame.GoBack(); AppState.Current.SetDefaultTitle(); } }
public MainPage() { ArcGISRuntimeEnvironment.SymbolsPath = @"Resources"; this.InitializeComponent(); DataContext = AppState.Current; SampleFrame.Navigated += SampleFrame_Navigated; SampleFrame.Navigate(typeof(SampleListPage)); }
public ParsingFrame(ReadOnlySpan <char> line) { Split(line, out var prefix, out var frameContent); LastSymbolIndex = prefix.LastIndexOfAny(knownSymbols); NumberIndex = prefix.Length; Frame = ParseSampleFrame(frameContent); }
void Start() { Camera camera = this.GetComponent <Camera>(); float length = clip.length; float fps = 5.0f; float sampleTimeOffset = 1.0f / fps; clip.SampleAnimation(this.gameObject, 0); float aspectRatio = (float)width / (float)height; Matrix4x4 intrinsics = Matrix4x4.identity; intrinsics.m00 = (width * 0.5f) / Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad); intrinsics.m02 = width * 0.5f; intrinsics.m11 = (height * 0.5f) / Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad); intrinsics.m12 = height * 0.5f; Matrix4x4 ndcIntrinsics = toNDC(intrinsics, width, height, camera.nearClipPlane, camera.farClipPlane); camera.projectionMatrix = ndcIntrinsics; SampleFrame frame = new SampleFrame(); frame.CameraToWorld = camera.transform.localToWorldMatrix; frame.Intrinsics = intrinsics; frame.Image = createRT(width, height, RenderTextureFormat.ARGBFloat); camera.targetTexture = frame.Image; camera.Render(); keyframe = new Keyframe(); keyframe.Initialize(frame, depth, initCostShader, regularizeShader); int numExecuted = 0; for (float t = sampleTimeOffset; t < length; t += sampleTimeOffset) { numExecuted++; clip.SampleAnimation(this.gameObject, t); SampleFrame newFrame = new SampleFrame(); newFrame.CameraToWorld = camera.transform.localToWorldMatrix; newFrame.Intrinsics = intrinsics; newFrame.Image = createRT(width, height, RenderTextureFormat.ARGBFloat); camera.targetTexture = newFrame.Image; camera.Render(); keyframe.UpdateCostVolume(newFrame, updateCostShader, updateCostMinMaxShader); } keyframe.ComputeNaiveDepth(naiveDepthShader); clip.SampleAnimation(this.gameObject, 0); inverseDepthGT = createRT(width, height, RenderTextureFormat.ARGBFloat); camera.targetTexture = inverseDepthGT; camera.RenderWithShader(Shader.Find("Custom/InverseDepth"), string.Empty); camera.targetTexture = null; keyframe.SolveDepthMap(initSolverShader, updateQShader, updateDShader, updateAShader, regularizeShader, projectQShader, settings); }
public void UpdateSampleFrame(SampleFrame item, string userId) { item.Name = Name; item.Description = Description; item.EditingDate = DateTime.Now; item.CreationDate = item.CreationDate == DateTime.MinValue ? DateTime.Now : item.CreationDate; item.Predicate = JsonConvert.SerializeObject(Predicate); item.Fields = JsonConvert.SerializeObject(Fields); item.Status = SampleFrameGenerationStatuses.Pending; item.GeneratedDateTime = null; item.FilePath = null; item.UserId = userId; }
private void InitialData() { cmbFirstUnit.Text = SampleData.firstSample; if (!string.IsNullOrEmpty(cmbFirstUnit.Text)) { getFields(); cmbVillage.Text = SampleData.villageField; cmbLayer.Text = SampleData.layerField; } cmbCultivation.Text = SampleData.farmLand; cmbASCDL.Text = SampleData.ASCDL; if (!string.IsNullOrEmpty(cmbASCDL.Text)) { cmbCrop.Properties.Items.Clear(); if (SampleData.classNames.Count > 0) { cmbCrop.Properties.Items.AddRange(SampleData.classNames); } else { try { string filePath = cmbASCDL.Text.TrimEnd(); FileInfo file = new FileInfo(filePath); string fileHdr = filePath.Replace(file.Extension, ".hdr"); if (File.Exists(fileHdr)) { SampleData.classNames = SampleFrame.GetClassFromHdr(fileHdr); this.cmbCrop.Properties.Items.AddRange(SampleData.classNames); } else { SampleData.classNames = SampleFrame.GetClassFromRaster(filePath); this.cmbCrop.Properties.Items.AddRange(SampleData.classNames); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.WriteLog(typeof(frmSampleFrame), ex); } } if (SampleData.targetCrop >= 0) { cmbCrop.Text = SampleData.classNames[SampleData.targetCrop]; } } }
public static SampleFrameM Create(SampleFrame entity) { return(new SampleFrameM { Id = entity.Id, EditingDate = entity.EditingDate, Name = entity.Name, Description = entity.Description, Predicate = JsonConvert.DeserializeObject <ExpressionGroup>(entity.Predicate), Fields = JsonConvert.DeserializeObject <IEnumerable <FieldEnum> >(entity.Fields), Status = entity.Status, GeneratedDateTime = entity.GeneratedDateTime, FilePath = entity.FilePath }); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { sampleMetadata = (SampleMetadata)e.Parameter; switch (sampleMetadata.Tag) { case "ImageClassifier": SampleFrame.Navigate(typeof(Samples.ImageClassifier)); break; case "Batching": SampleFrame.Navigate(typeof(Samples.Batching)); break; case "ImageEffects": SampleFrame.Navigate(typeof(Samples.ImageEffects)); break; case "OpenCVInterop": SampleFrame.Navigate(typeof(Samples.OpenCVInterop)); break; case "ImageSharpInterop": SampleFrame.Navigate(typeof(Samples.ImageSharpInterop)); break; case "EncryptedModel": SampleFrame.Navigate(typeof(Samples.EncryptedModel)); break; case "AdapterSelection": SampleFrame.Navigate(typeof(Samples.AdapterSelection)); break; } if (sampleMetadata.Docs.Count > 0) { DocsHeader.Visibility = Visibility.Visible; } else { DocsHeader.Visibility = Visibility.Collapsed; } }
public void Initialize(SampleFrame frame, int numDepthValues, ComputeShader initCostShader, ComputeShader regularizerShader) { Reset(); int width = frame.Image.width; int height = frame.Image.height; this.Intrinsics = frame.Intrinsics; this.CameraToWorld = frame.CameraToWorld; this.depth = numDepthValues; this.Image = frame.Image; this.DepthImage = createRT(width, height, RenderTextureFormat.ARGBFloat); this.NaiveDepthImage = createRT(width, height, RenderTextureFormat.ARGBFloat); this.Regularizer = createRT(width, height, RenderTextureFormat.ARGBFloat); this.QBuffer = new Texture2D(width, height, TextureFormat.RGBAFloat, false, true); this.QBuffer.Apply(); this.QImage = createRT(width, height, RenderTextureFormat.ARGBFloat); this.DImage = createRT(width, height, RenderTextureFormat.ARGBFloat); this.AImage = createRT(width, height, RenderTextureFormat.ARGBFloat); float maxDepthInMeters = 3; float minDepthInMeters = 0.5f; this.invDepthMax = Mathf.Max(1.0f / maxDepthInMeters, 1.0f / minDepthInMeters); this.invDepthMin = Mathf.Min(1.0f / maxDepthInMeters, 1.0f / minDepthInMeters); int numElems = (width * height * depth); int ideal2DPixels = Mathf.CeilToInt(Mathf.Sqrt((float)numElems)); int texWidth = ideal2DPixels; int texHeight = ideal2DPixels; this.CostVolume = createRT(texWidth, texHeight, RenderTextureFormat.ARGBFloat); this.CostVolumeMinMax = createRT(width, height, RenderTextureFormat.ARGBFloat); frame.Image = null; resetCostVolume(initCostShader); initRegularizer(regularizerShader, 1, 2); }
public SampleFrameTick(SampleFrame parent) { this.parent = parent; }
private void btnOK_Click(object sender, EventArgs e) { if (this.xtraTabControl1.SelectedTabPageIndex == 0) { SampleFrame sampleFrame = new SampleFrame(); frmWaitDialog frmWait = new frmWaitDialog("正在处理...", "提示信息"); try { frmWait.Owner = this; frmWait.TopMost = false; string msg = string.Empty; if (chkArea.Checked) { SampleData.hasArea = true; SampleData.areaField = cmbAreaField.Text; SampleData.firstUnit = this.cmbUnit.Text.TrimEnd(); SampleData.farmLand = this.cmbCrop.Text.TrimEnd(); SampleData.ASCDL = cmbASCDL.Text; SampleData.targetCrop = this.cmbDestination.SelectedIndex; frmWait.Caption = "参数检查..."; if (!sampleFrame.ChkData(out msg)) { XtraMessageBox.Show(msg); return; } frmWait.Caption = "计算分类面积..."; if (!sampleFrame.CalClassArea(SampleData.firstUnit, SampleData.ASCDL, SampleData.targetCrop, out msg)) { XtraMessageBox.Show(msg); return; } } else { SampleData.hasArea = false; SampleData.areaField = string.Empty; SampleData.firstUnit = this.cmbUnit.Text.TrimEnd(); SampleData.farmLand = this.cmbCrop.Text.TrimEnd(); SampleData.ASCDL = cmbASCDL.Text; SampleData.targetCrop = this.cmbDestination.SelectedIndex; frmWait.Caption = "参数检查..."; if (!sampleFrame.ChkData(out msg)) { XtraMessageBox.Show(msg); return; } frmWait.Caption = "计算耕地面积..."; if (!sampleFrame.CalLandArea(SampleData.firstUnit, SampleData.farmLand, out msg)) { XtraMessageBox.Show(msg); return; } frmWait.Caption = "计算分类面积..."; if (!sampleFrame.CalClassArea(SampleData.firstUnit, SampleData.ASCDL, SampleData.targetCrop, out msg)) { XtraMessageBox.Show(msg); return; } } if (DialogResult.OK == XtraMessageBox.Show("处理完毕.", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information)) { MapAPI.AddShpFileToMap(SampleData.firstUnit); MapAPI.AddShpFileToMap(SampleData.farmLand); MapAPI.AddRasterFileToMap(SampleData.ASCDL); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { frmWait.Close(); } } }
public void UpdateCostVolume(SampleFrame frame, ComputeShader updateCostShader, ComputeShader updateCostMinMaxShader) { updateCosts(frame, updateCostShader); updateCostsMinMax(updateCostMinMaxShader); }
private void btnOK_Click(object sender, EventArgs e) { string msg = string.Empty; frmWaitDialog frmWait = new frmWaitDialog("正在执行...", "提示信息"); try { frmWait.Owner = this; frmWait.TopMost = false; string fishNet = string.Empty; string firstUnit = this.cmbFirstUnit.Text; if (chkNewNet.Checked) { SampleData.firstSample = cmbFirstUnit.Text; SampleData.villageField = cmbVillage.Text; SampleData.layerField = cmbLayer.Text; SampleData.farmLand = cmbCultivation.Text; SampleData.ASCDL = cmbASCDL.Text; SampleData.targetCrop = cmbCrop.SelectedIndex; if (!SampleSelection.ChkData(out msg)) { XtraMessageBox.Show(msg); return; } //一级单元范围内创建渔网 frmWait.Caption = "创建二级抽样单元..."; fishNet = System.IO.Path.Combine(ConstDef.PATH_TEMP, DateTime.Now.ToFileTime().ToString() + ".shp"); int width = int.Parse(spinLength.EditValue.ToString()); int height = int.Parse(this.spinWidth.EditValue.ToString()); if (!EnviVars.instance.GpExecutor.CreateFishNet(firstUnit, width, height, fishNet, out msg)) { XtraMessageBox.Show(msg); return; } } else { SampleData.firstSample = cmbFirstUnit.Text; SampleData.villageField = cmbVillage.Text; SampleData.layerField = cmbLayer.Text; SampleData.farmLand = cmbCultivation.Text; SampleData.ASCDL = cmbASCDL.Text; SampleData.targetCrop = cmbCrop.SelectedIndex; if (!SampleSelection.ChkData(out msg)) { XtraMessageBox.Show(msg); return; } if (string.IsNullOrEmpty(cmbSecondUint.Text)) { XtraMessageBox.Show("二级抽样单元为空!"); return; } fishNet = cmbSecondUint.Text; } //抽选样本 frmWait.Caption = "抽选样本..."; SamplePara para = new SamplePara(); para.isNum = chkSampleNum.Checked; para.sampleNum = int.Parse(this.spinSampleNum.EditValue.ToString()); para.sampleRate = double.Parse(this.spinPercent.EditValue.ToString()) / 100; SampleSelection.Sampling(firstUnit, cmbVillage.Text, cmbLayer.Text, fishNet, cmbCultivation.Text, para, txtOut.Text); SampleFrame sampleFrame = new SampleFrame(); frmWait.Caption = "计算耕地面积..."; if (!SampleSelection.CalLandArea(txtOut.Text, SampleData.farmLand, out msg)) { XtraMessageBox.Show(msg); return; } frmWait.Caption = "计算分类面积..."; if (!sampleFrame.CalClassArea(txtOut.Text, SampleData.ASCDL, SampleData.targetCrop, out msg)) { XtraMessageBox.Show(msg); return; } BLL.ProductMeta meta = new ProductMeta(txtOut.Text.TrimEnd(), "", "", "二级样方", "抽样和面积推算结果"); meta.WriteShpMeta(); BLL.ProductQuickView view = new BLL.ProductQuickView(txtOut.Text.TrimEnd()); view.Create(); System.Windows.Forms.DialogResult dialogResult = XtraMessageBox.Show("抽样完成,是否加载结果?", "提示信息", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Asterisk); if (dialogResult == System.Windows.Forms.DialogResult.Yes) { MapAPI.AddShpFileToMap(txtOut.Text); this.Close(); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message); Log.WriteLog(typeof(frmSymbolSelector), ex); } finally { frmWait.Close(); } }