/// <summary> /// Show a picture in the <code>imgAdded</code> Image control with the file <code>fileName</code>. /// </summary> /// <param name="fileName"></param> private void showAddPicInfo(String fileName) { if (!String.IsNullOrEmpty(fileName)) { string pattern = ClothUtil.ExtractPattern(fileName); // use pattern as name currently. showAddPicInfo(fileName, pattern); } }
private void btnOpenKeyPic_Click(object sender, RoutedEventArgs e) { if (dlgOpenKeyPic.ShowDialog() == true) { BitmapImage bi = ViewHelper.NewBitmapImage(dlgOpenKeyPic.FileName); if (bi == null) { MessageBox.Show("您选择的文件无法识别, 可能不是图片文件.", "显示关键图..."); return; } imgKeyPic.Source = bi; keyCloth = new Cloth(); keyCloth.Path = dlgOpenKeyPic.FileName; keyCloth.Pattern = ClothUtil.ExtractPattern(keyCloth.Path); keyCloth.Name = keyCloth.Pattern; //keyCloth.ColorVector = imageMatcher.ExtractRGBSeparateColorVector(keyCloth.Path, SearchConstants.IgnoreColors); //keyCloth.TextureVector = imageMatcher.ExtractDaubechiesWaveletVector(keyCloth.Path); //keyCloth.GaborVector = imageMatcher.ExtractGaborVector(keyCloth.Path); //keyCloth.CooccurrenceVector = imageMatcher.ExtractCooccurrenceVector(keyCloth.Path); /*keyClothOpened = true; * if (keyClothThread != null && keyClothThread.IsAlive) * { * keyClothThread.Abort(); * } * ParameterizedThreadStart threadDelegate = new ParameterizedThreadStart(fillKeyCloth); * keyClothThread = new Thread(threadDelegate); * keyClothThread.IsBackground = true; * keyClothThread.Start(dlgOpenKeyPic.FileName); */ /*lock (keyClothLock) * { * FillKeyCloth fkc = new FillKeyCloth(fillKeyCloth); * fkc.BeginInvoke(dlgOpenKeyPic.FileName, ++curKeyClothOperId, null, null); * }*/ //ViewHelper.ExtractFeatures(keyCloth); //keyCloth.ColorVector = imageMatcher.ExtractRGBSeparateColorVector(keyCloth.Path, ViewConstants.IgnoreColors); //keyCloth.TextureVector = imageMatcher.ExtractDaubechiesWaveletVector(keyCloth.Path); //keyCloth.GaborVector = imageMatcher.ExtractGaborVector(keyCloth.Path); //keyCloth.CooccurrenceVector = imageMatcher.ExtractCooccurrenceVector(keyCloth.Path); updateSearchButton(); } }
private void btnAddFileSave_Click(object sender, RoutedEventArgs e) { if (String.IsNullOrEmpty(addPicFileName)) { // should not be here. MessageBox.Show("请先选择一张图片.", "温馨提醒"); return; } Cloth cloth = new Cloth(); // whether use the key cloth. bool useKeyPic = (null != keyCloth && keyCloth.Path == addPicFileName); cloth.Path = addPicFileName; if (!String.IsNullOrEmpty(txtAddPattern.Text)) { cloth.Pattern = txtAddPattern.Text; } cloth.Name = useKeyPic && keyCloth.Name != null ? keyCloth.Name : ClothUtil.ExtractPattern(addPicFileName); ColorEnum colors = ColorEnum.NONE; foreach (ColorItem ci in colorItems) { if (ci.Selected) { colors |= ci.Value; } } cloth.Colors = colors; ShapeEnum shapes = ShapeEnum.NONE; foreach (ShapeItem si in shapeItems) { if (si.Selected) { shapes |= si.Value; } } cloth.Shapes = shapes; // feature vectors //cloth.RGBSeparateColorVector = (useKeyPic && keyCloth.RGBSeparateColorVector != null) // ? keyCloth.RGBSeparateColorVector : ClothUtil.ImageMatcherInst.ExtractRGBSeparateColorVector(cloth.Path, 8, SearchConstants.IgnoreColors); cloth.RGBColorVector = (useKeyPic && keyCloth.RGBColorVector != null) ? keyCloth.RGBColorVector : ClothUtil.ImageMatcherInst.ExtractRGBColorVector(cloth.Path, 3, SearchConstants.IgnoreColors); cloth.HSVAynsColorVector = (useKeyPic && keyCloth.HSVAynsColorVector != null) ? keyCloth.HSVAynsColorVector : ClothUtil.ImageMatcherInst.ExtractHSVAynsColorVector(cloth.Path, 0, SearchConstants.IgnoreColors); cloth.HSVColorVector = (useKeyPic && keyCloth.HSVColorVector != null) ? keyCloth.HSVColorVector : ClothUtil.ImageMatcherInst.ExtractHSVColorVector(cloth.Path, 3, SearchConstants.IgnoreColors); if (cloth.HSVColorVector != null) { cloth.ColorNum = ClothUtil.getColorNumber(cloth.HSVColorVector, 0.07f); } cloth.DaubechiesWaveletVector = (useKeyPic && keyCloth.DaubechiesWaveletVector != null) ? keyCloth.DaubechiesWaveletVector : ClothUtil.ImageMatcherInst.ExtractDaubechiesWaveletVector(cloth.Path); //cloth.GaborVector = (useKeyPic && keyCloth.GaborVector != null) // ? keyCloth.GaborVector : ClothUtil.ImageMatcherInst.ExtractGaborVector(cloth.Path); //cloth.CooccurrenceVector = (useKeyPic && keyCloth.CooccurrenceVector != null) // ? keyCloth.CooccurrenceVector : ClothUtil.ImageMatcherInst.ExtractCooccurrenceVector(cloth.Path); clothLibService.Insert(cloth); // close the window. this.Close(); }