Добрый день! Возникла трудность передачи переменной, в которой содержится изображение, из одного класса в другой.
Метод 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 смог обработать изображение в переменной.