private void buttonOK_Click(object sender, EventArgs e)
 {
     using (var form = new VobSubOcrNOcrCharacter())
     {
         form.Initialize(_expandItem.NikseBitmap.GetBitmap(), _expandItem, new Point(0, 0), checkBoxItalic.Checked, false, textBoxText.Text);
         var result = form.ShowDialog(this);
         NOcrChar             = form.NOcrChar;
         NOcrChar.ExpandCount = (int)numericUpDownExpandCount.Value;
         DialogResult         = result;
     }
 }
Example #2
0
        private void addBetterMultiMatchToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (var form = new AddBetterMultiMatchNOcr())
            {
                var tempImageList = new List <ImageSplitterItem>();
                var idx           = _indexLookup[listBoxInspectItems.SelectedIndex];
                for (int i = idx; i < _imageList.Count; i++)
                {
                    tempImageList.Add(_imageList[i]);
                }

                var tempMatchList = new List <VobSubOcr.CompareMatch>();
                idx = listBoxInspectItems.SelectedIndex;
                for (int i = idx; i < _matchList.Count; i++)
                {
                    tempMatchList.Add(_matchList[i]);
                }

                form.Initialize(_bitmap, 0, tempMatchList, tempImageList);
                if (form.ShowDialog(this) == DialogResult.OK)
                {
                    using (var charForm = new VobSubOcrNOcrCharacter())
                    {
                        charForm.Initialize(_bitmap, form.ExpandItem, new Point(0, 0), form.ExpandItalic, false, false, form.ExpandText);
                        if (charForm.ShowDialog(this) == DialogResult.OK)
                        {
                            charForm.NOcrChar.ExpandCount = form.ExpandCount;
                            var expandList = tempImageList.Take(form.ExpandCount).ToList();
                            charForm.NOcrChar.MarginTop = expandList.First().Top - expandList.Min(p => p.Top);
                            _nOcrDb.Add(charForm.NOcrChar);
                            DialogResult = DialogResult.OK;
                            return;
                        }
                    }
                }

                DialogResult = DialogResult.Cancel;
            }
        }
        private void buttonAddBetterMatch_Click(object sender, EventArgs e)
        {
            var expandSelectionList = new List <ImageSplitterItem>();

            if (listBoxInspectItems.SelectedIndex < 0)
            {
                return;
            }

            int index = listBoxInspectItems.SelectedIndex;
            var img   = _imageList[index];

            if (img.NikseBitmap == null)
            {
                return;
            }

            using (var vobSubOcrNOcrCharacter = new VobSubOcrNOcrCharacter())
            {
                vobSubOcrNOcrCharacter.Initialize(_bitmap, img, new Point(0, 0), false, expandSelectionList.Count > 1);
                DialogResult result          = vobSubOcrNOcrCharacter.ShowDialog(this);
                bool         expandSelection = false;
                bool         shrinkSelection = false;
                if (result == DialogResult.OK && vobSubOcrNOcrCharacter.ExpandSelection)
                {
                    expandSelection = true;
                    expandSelectionList.Add(img);
                }
                while (result == DialogResult.OK && (vobSubOcrNOcrCharacter.ShrinkSelection || vobSubOcrNOcrCharacter.ExpandSelection))
                {
                    if (expandSelection || shrinkSelection)
                    {
                        expandSelection = false;
                        if (shrinkSelection && index > 0)
                        {
                            shrinkSelection = false;
                        }
                        else if (index + 1 < _imageList.Count && _imageList[index + 1].NikseBitmap != null) // only allow expand to EndOfLine or space
                        {
                            index++;
                            expandSelectionList.Add(_imageList[index]);
                        }
                        img = VobSubOcr.GetExpandedSelection(new NikseBitmap(_bitmap), expandSelectionList, false); // true
                    }

                    vobSubOcrNOcrCharacter.Initialize(_bitmap2, img, new Point(0, 0), false, expandSelectionList.Count > 1);
                    result = vobSubOcrNOcrCharacter.ShowDialog(this);

                    if (result == DialogResult.OK && vobSubOcrNOcrCharacter.ShrinkSelection)
                    {
                        shrinkSelection = true;
                        index--;
                        if (expandSelectionList.Count > 0)
                        {
                            expandSelectionList.RemoveAt(expandSelectionList.Count - 1);
                        }
                    }
                    else if (result == DialogResult.OK && vobSubOcrNOcrCharacter.ExpandSelection)
                    {
                        expandSelection = true;
                        index++;
                        expandSelectionList.Add(_imageList[index]);
                    }
                }
                if (result == DialogResult.OK)
                {
                    if (expandSelectionList.Count > 1)
                    {
                        vobSubOcrNOcrCharacter.NOcrChar.ExpandCount = expandSelectionList.Count;
                    }

                    _nocrChars.Add(vobSubOcrNOcrCharacter.NOcrChar);
                    _vobSubOcr.SaveNOcrWithCurrentLanguage();
                    DialogResult = DialogResult.OK;
                }
            }
        }
Example #4
0
        private void buttonAddBetterMatch_Click(object sender, EventArgs e)
        {
            var expandSelectionList = new List <ImageSplitterItem>();

            if (listBoxInspectItems.SelectedIndex < 0)
            {
                return;
            }

            int index = _indexLookup[listBoxInspectItems.SelectedIndex];
            var img   = _imageList[index];

            if (img.NikseBitmap == null)
            {
                return;
            }

            var match = _matchList[listBoxInspectItems.SelectedIndex];

            if (match?.ExpandCount > 1) // expand match
            {
                addBetterMultiMatchToolStripMenuItem_Click(null, null);
                return;
            }

            using (var vobSubOcrNOcrCharacter = new VobSubOcrNOcrCharacter())
            {
                var text = textBoxText.Text;
                vobSubOcrNOcrCharacter.Initialize(_bitmap, img, new Point(-1, -1), checkBoxItalic.Checked, true, expandSelectionList.Count > 1, text);
                DialogResult result          = vobSubOcrNOcrCharacter.ShowDialog(this);
                var          expandSelection = false;
                var          shrinkSelection = false;
                if (result == DialogResult.OK && vobSubOcrNOcrCharacter.ExpandSelection)
                {
                    expandSelection = true;
                    if (img.NikseBitmap != null)
                    {
                        expandSelectionList.Add(img);
                    }
                }
                while (result == DialogResult.OK && (vobSubOcrNOcrCharacter.ShrinkSelection || vobSubOcrNOcrCharacter.ExpandSelection))
                {
                    if (expandSelection || shrinkSelection)
                    {
                        expandSelection = false;
                        if (shrinkSelection && index > 0)
                        {
                            shrinkSelection = false;
                        }
                        else if (index + 1 < _imageList.Count && _imageList[index + 1].NikseBitmap != null) // only allow expand to EndOfLine or space
                        {
                            index++;
                            expandSelectionList.Add(_imageList[index]);
                        }
                        img = VobSubOcr.GetExpandedSelectionNew(new NikseBitmap(_bitmap), expandSelectionList); // true
                    }

                    vobSubOcrNOcrCharacter.Initialize(_bitmap, img, new Point(0, 0), checkBoxItalic.Checked, true, expandSelectionList.Count > 1, string.Empty);
                    result = vobSubOcrNOcrCharacter.ShowDialog(this);

                    if (result == DialogResult.OK && vobSubOcrNOcrCharacter.ShrinkSelection)
                    {
                        shrinkSelection = true;
                        index--;
                        if (expandSelectionList.Count > 0)
                        {
                            expandSelectionList.RemoveAt(expandSelectionList.Count - 1);
                        }
                    }
                    else if (result == DialogResult.OK && vobSubOcrNOcrCharacter.ExpandSelection)
                    {
                        expandSelection = true;
                        if (_imageList[index + 1].NikseBitmap != null)
                        {
                            index++;
                            expandSelectionList.Add(_imageList[index]);
                        }
                    }
                }
                if (result == DialogResult.OK)
                {
                    if (expandSelectionList.Count > 1)
                    {
                        vobSubOcrNOcrCharacter.NOcrChar.ExpandCount = expandSelectionList.Count;
                    }

                    _nOcrChars.Add(vobSubOcrNOcrCharacter.NOcrChar);
                    DialogResult = DialogResult.OK;
                }
            }
        }