Задать вопрос

Как передать данные из одного класса в другой?

Добрый день! Возникла трудность передачи переменной, в которой содержится изображение, из одного класса в другой.
Метод DrawBitmap, из которого передается переменная newBitmap, находящийся в классе PictureBoxControl:
public Bitmap DrawBitmap()
        {
            var pic = Bitmap; // Assuming this is a valid Bitmap object
            Bitmap newBitmap = new Bitmap(pic.Width, pic.Height);
            using (Graphics newGraphics = Graphics.FromImage(newBitmap))
            {
                newGraphics.Clear(Color.White);
                foreach (var textAreaRect in _textAreas)
                {
                    Bitmap clonedImage = pic.Clone(textAreaRect, PixelFormat.Format16bppRgb555);
                    newGraphics.DrawImage(clonedImage, textAreaRect.Location);
                    clonedImage.Dispose(); // Dispose the cloned image after use
                }
            }

            return newBitmap;
        }


И метод toolStripButton1_Click, в котором надо передать переменную newBitmap в функцию tesseract.SetImage:
private void toolStripButton1_Click(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(filePath) || String.IsNullOrWhiteSpace(filePath))
                {
                    throw new Exception("Картинка не выбрана!");
                }
                else if (toolStripComboBox1.SelectedItem == null)
                {
                    throw new Exception("Язык не выбран!");
                }
                else
                {
                    Tesseract tesseract = new Tesseract(@"C:\test_data", lang, OcrEngineMode.TesseractLstmCombined);

                    tesseract.SetImage(newBitmap);

                    tesseract.Recognize();

                    richTextBox1.Text = tesseract.GetUTF8Text();

                    tesseract.Dispose();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }


В уже написанной мной строчке tesseract.SetImage() возникает ошибка: Ошибка CS1503 Аргумент 1: не удается преобразовать из "TextDetection.Controls.PictureBoxControl" в "Emgu.CV.IInputArray".
Подскажите, пожалуйста, как правильно передать эту переменную, чтобы Tesseract смог обработать изображение в переменной.
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
GavriKos
@GavriKos
Читайте мануал к вашей библиотеке, там должен быть ответ как сконструировать IInputArray.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы