ezotonal
Client
- Регистрация
- 13.01.2014
- Сообщения
- 819
- Благодарностей
- 231
- Баллы
- 43
Нормально без ошибок, так как используется "@"А как у тебя в С# коде отрабатывает этот код с такой переменой {-Project.Directory-}
Нормально без ошибок, так как используется "@"А как у тебя в С# коде отрабатывает этот код с такой переменой {-Project.Directory-}
а при чём собака если в коде переменные вообще в другом формате пишутся, или ты в ява ? или в новых версиях сделали что два варианта переменных работают
Bitmap bmp = new Bitmap(@"{-Project.Directory-}\{-Variable.name-}");
Что то типа такого должно быть, если не применять библиотеки для работы с изображением. Можно воспользоваться например такой библиотекой.Подскажите, как в коде прописать, чтобы капчу чуть повернуть по часовой стрелке, а то разгадывает не верно?
Решилось, екшеном работы с изображением поворотом на несколько градусов и обрезкой.
public static Bitmap RotateImage(Image image, float angle)
{
if (image == null)
throw new ArgumentNullException("image");
const double pi2 = Math.PI / 2.0;
// Why can't C# allow these to be const, or at least readonly
// *sigh* I'm starting to talk like Christian Graus :omg:
double oldWidth = (double)image.Width;
double oldHeight = (double)image.Height;
// Convert degrees to radians
double theta = ((double)angle) * Math.PI / 180.0;
double locked_theta = theta;
// Ensure theta is now [0, 2pi)
while (locked_theta < 0.0)
locked_theta += 2 * Math.PI;
double newWidth, newHeight;
int nWidth, nHeight; // The newWidth/newHeight expressed as ints
double adjacentTop, oppositeTop;
double adjacentBottom, oppositeBottom;
if ((locked_theta >= 0.0 && locked_theta < pi2) ||
(locked_theta >= Math.PI && locked_theta < (Math.PI + pi2)))
{
adjacentTop = Math.Abs(Math.Cos(locked_theta)) * oldWidth;
oppositeTop = Math.Abs(Math.Sin(locked_theta)) * oldWidth;
adjacentBottom = Math.Abs(Math.Cos(locked_theta)) * oldHeight;
oppositeBottom = Math.Abs(Math.Sin(locked_theta)) * oldHeight;
}
else
{
adjacentTop = Math.Abs(Math.Sin(locked_theta)) * oldHeight;
oppositeTop = Math.Abs(Math.Cos(locked_theta)) * oldHeight;
adjacentBottom = Math.Abs(Math.Sin(locked_theta)) * oldWidth;
oppositeBottom = Math.Abs(Math.Cos(locked_theta)) * oldWidth;
}
newWidth = adjacentTop + oppositeBottom;
newHeight = adjacentBottom + oppositeTop;
nWidth = (int)Math.Ceiling(newWidth);
nHeight = (int)Math.Ceiling(newHeight);
Bitmap rotatedBmp = new Bitmap(nWidth, nHeight,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
using (Graphics g = Graphics.FromImage(rotatedBmp))
{
// This array will be used to pass in the three points that
// make up the rotated image
Point[] points;
if (locked_theta >= 0.0 && locked_theta < pi2)
{
points = new Point[] {
new Point( (int) oppositeBottom, 0 ),
new Point( nWidth, (int) oppositeTop ),
new Point( 0, (int) adjacentBottom )
};
}
else if (locked_theta >= pi2 && locked_theta < Math.PI)
{
points = new Point[] {
new Point( nWidth, (int) oppositeTop ),
new Point( (int) adjacentTop, nHeight ),
new Point( (int) oppositeBottom, 0 )
};
}
else if (locked_theta >= Math.PI && locked_theta < (Math.PI + pi2))
{
points = new Point[] {
new Point( (int) adjacentTop, nHeight ),
new Point( 0, (int) adjacentBottom ),
new Point( nWidth, (int) oppositeTop )
};
}
else
{
points = new Point[] {
new Point( 0, (int) adjacentBottom ),
new Point( (int) oppositeBottom, 0 ),
new Point( (int) adjacentTop, nHeight )
};
}
g.FillRectangle(Brushes.White, 0, 0, rotatedBmp.Width, rotatedBmp.Height);
g.DrawImage(image, points);
}
return rotatedBmp;
}
using (var api = OcrApi.Create())
{
api.Init(Languages.English); // англ язык распознавания
api.Init(Languages.Russian);// рус язык распознавания если скачали пакет с сайта Tesseract
// api.SetVariable("tessedit_char_whitelist", "0123456789"); // если гадать только цифры - раскомментировать строку
var path = project.Variables["picture"].Value;//название переменной в которой путь к файлу
string plainText = api.GetTextFromImage(path);
return plainText; // возвращаем ответ переменой екшена
}
return "bad";
напиши в лс свой skypeпомогите внедрить, за монетку
смотря что внедрить =)помогите внедрить, за монетку
Скорее всего папку tessdata в C:\Program Files (x86)\ZennoLab\ZennoPoster\Progs не положил, там языковые файлы лежат.Что это может быть?
Код:Не удалось загрузить файл или сборку "Patagames.Ocr, Version=1.9.2.341, Culture=neutral, PublicKeyToken=c2dc709ce62c6191" либо одну из их зависимостей. Не удается найти указанный файл.
минуснуть всё, кроме черного и дело в шляпе. Если конечно в этом плане всё стабильноРеально прочитать текст с такой каптчи?
Стоит заморачиваться?
Даю зуб что он D от 0 не отличит, так что смысла нет тут юзать его.минуснуть всё, кроме черного и дело в шляпе. Если конечно в этом плане всё стабильно
всё зависит от того, какой пробив будет удовлетворителенДаю зуб что он D от 0 не отличит, так что смысла нет тут юзать его.
а я зуб даю что если его обучить как надо то всё различитДаю зуб что он D от 0 не отличит, так что смысла нет тут юзать его.
А ты научи нас как его надо обучать. Только ссылки в гугл не кидай. Реальный опыт обучения тессаракта в студию.а я зуб даю что если его обучить как надо то всё различит
ты ведь зуб давал не выкладавая, поэтому и я даю слово что его можно обучить по своему, для тебя ломануть тем более чтото не проблема ты профисиональней меня, поэтому студия это халява и отпадает в моём случаеА ты научи нас как его надо обучать. Только ссылки в гугл не кидай. Реальный опыт обучения тессаракта в студию.
Капча случаем не антиботовская? Пример в студиюПодскажите кто знающий. Вот я все настроил как в этом посте, все работает. Но картинка капчи получается не черно-белая, а бело-черная. Ну то есть фон серый, а сама капча белая. И в итоге он ее не распознает. Если же просто в фотошопе закрасить капчу черным - все работает. В общем как через С# сделать инферсию цветов? Чет гугл не помог, ну или просто я тупой.
в ручную запилил чтобы для пнонимания было понятно что можно и тессерактом распознатьА ты научи нас как его надо обучать. Только ссылки в гугл не кидай. Реальный опыт обучения тессаракта в студию.