Нужно нажать на красный круг, как такое реализовать?
Вложения
-
22,9 КБ Просмотры: 40
Он может быть в разных местах в пределах желтого прямоугольника, но всегда одного размера и всегда красный, размеры блока тоже не меняютсяА он всегда в одном месте или в разных? Он всегда красный? Меняется ли размеры круга, размеры всего блока?
Сделайте несколько фото, разных вариантов.
вот разные вариантыА он всегда в одном месте или в разных? Он всегда красный? Меняется ли размеры круга, размеры всего блока?
Сделайте несколько фото, разных вариантов.
Если скажете где я могу потестить код, я вам напишу его, ну т.е переделаю мой код под вашу капчу.вот разные варианты
ПКМ по красному кружку на картинке и Поиск по картинке и думаю будет работать.вот разные варианты
Супер! Срабатывает поиск по картинке! Спасибо! Осталась одна не решенная капча , как с такой бороться средствами зенки?ПКМ по красному кружку на картинке и Поиск по картинке и думаю будет работать.
Перебор не вариант - всегда жать 3? )Супер! Срабатывает поиск по картинке! Спасибо! Осталась одна не решенная капча , как с такой бороться средствами зенки?
Нужно средствами зенки решить, без кмтак это же профитцентр вроде... где то на форуме выкладывали целый пак модулей для этого ресурса.
Наверно в ветке капмонстра надо поискать....
Всегда жать одну цифру не пойдет, за частое не правильное разгадывание капчи можно бан получитьПеребор не вариант - всегда жать 3? )
Или тот же поиск по картинке перебирать?
не надо путать кислое со сладким. У зенки свои задачи для выполнения, у капмонстра свои. Раз стоит задача в разпознавании капчи, то это задача из области OCR, а не автоматизации. Не нравится OCR под названием капмонстр, тогда подымай свою нейросеть, обучай ее. Еще можно на гитхабе посмотреть OCR какой нибудь, например OpenCV ( Emgu ) и прикрутить к зенке.Нужно средствами зенки решить, без км
Всего то лишь)не надо путать кислое со сладким. У зенки свои задачи для выполнения, у капмонстра свои. Раз стоит задача в разпознавании капчи, то это задача из области OCR, а не автоматизации. Не нравится OCR под названием капмонстр, тогда подымай свою нейросеть, обучай ее. Еще можно на гитхабе посмотреть OCR какой нибудь, например OpenCV ( Emgu ) и прикрутить к зенке.
Вопрос только в знаниях да умении кодить. Всего то лишь
Можно просто посчитать количество красных пикселей по горизонтали и по вертикали, для определения координат описанного (или вписанного в круг) прямоугольника - и уже тогда кликать в эту точку, определив прежде координаты самой каптчи относительно окна браузера.не надо путать кислое со сладким. У зенки свои задачи для выполнения, у капмонстра свои. Раз стоит задача в разпознавании капчи, то это задача из области OCR, а не автоматизации. Не нравится OCR под названием капмонстр, тогда подымай свою нейросеть, обучай ее. Еще можно на гитхабе посмотреть OCR какой нибудь, например OpenCV ( Emgu ) и прикрутить к зенке.
Вопрос только в знаниях да умении кодить. Всего то лишь
да я то не против. пусть считает красные пиксели так то, с той капчей он вроде разобрался с помощью простечкой OCR зенкиМожно просто посчитать количество красных пикселей по горизонтали и по вертикали, для определения координат описанного (или вписанного в круг) прямоугольника - и уже тогда кликать в эту точку, определив прежде координаты самой каптчи относительно окна браузера.
Просто считать пиксели для меня более очевидное решение, чем использовать OpenCV.да я то не против. пусть считает красные пиксели так то, с той капчей он вроде разобрался с помощью простечкой OCR зенки
А я ему ответил про эту капчу, а не по красной жирной точке.
Посмотреть вложение 68466
насколько я знаю, эти звездочки не всегда вот так в линию стоят. могут и по вертикали пересекатся. Поэтому метод трассировки по горизонтали и по вертикали... ну в общем там есть где покодить и голову поломать.
Я хочу донести мысль, что в зенке из коробки нет инструментов для решения подобных задач. В любом случае надо кодить в C# и даже если знаешь как кодить то нафига изобретать велосипед если есть специализированные библиотеки ? Вот в OpenCV для этой капчи прям реально подойдет ее метод заливки и нахождения краев. тут даже без заливки будет работать.
А в капмонстре даже модуль обучать не надо по этим звездочкам, выгладывали уже обученный. Но автору не надо через капмонстр
Обычно те, кто пытаются крутить буксы изначально не имеют достаточно ресурсов на покупку капмонстра, и ищут решения, которые позволили бы решать проблему без дополнительных затрат. Возможно это один из таких случаев. Если бы мне сегодня нужно было решать эту каптчу (что первую, что вторую), то только ради них я не покупал бы капмонстр точно - а пытался бы как-то научиться распознавать их с помощью математики и C# (на изучение OpenCV у меня бы наверно ушло больше времени, чем высчитывать площади описанных прямоугольников или количество объектов по средним значениям пикселей).А в капмонстре даже модуль обучать не надо по этим звездочкам, выгладывали уже обученный. Но автору не надо через капмонстр
Не за что извиняться. Это у меня стиль написания текста дерзко-хулиганский не раз уже предупреждения и баны получал за этоЯ никаким образом не хотел задеть Вас своим сообщением и однозначно не считаю свои высказывания единственно правильным и верным решением - они не более чем ещё одна точка зрения в общую копилку знаний форума.
Если так случайно получилось - тогда прошу прощения.
Я за собой начал замечать то же самое... Пытаюсь исправиться...Не за что извиняться. Это у меня стиль написания текста дерзко-хулиганский не раз уже предупреждения и баны получал за это
Супер! Срабатывает поиск по картинке! Спасибо! Осталась одна не решенная капча , как с такой бороться средствами зенки?
string login = project.Variables["login"].Value;
string path = project.Directory + @"\captcha_serfing\" + login + ".png";
var image = new Bitmap(path);
int grey = 0;
int x, y;
for (x = 0; x < image.Width; x++)
{
for (y = 0; y < image.Height; y++)
{
if (image.GetPixel(x, y).R == 117 && image.GetPixel(x, y).G == 117 && image.GetPixel(x, y).B == 117)
{
grey++;
}
}
}
int res = grey/60;
project.Variables["ResultCaptcha"].Value = res.ToString().Trim();
image.Dispose();
return res.ToString();
оригинальноC#:string login = project.Variables["login"].Value; string path = project.Directory + @"\captcha_serfing\" + login + ".png"; var image = new Bitmap(path); int grey = 0; int x, y; for (x = 0; x < image.Width; x++) { for (y = 0; y < image.Height; y++) { if (image.GetPixel(x, y).R == 117 && image.GetPixel(x, y).G == 117 && image.GetPixel(x, y).B == 117) { grey++; } } } int res = grey/60; project.Variables["ResultCaptcha"].Value = res.ToString().Trim(); image.Dispose(); return res.ToString();
using (MemoryStream ms = new MemoryStream())
{
string base64 = Convert.ToBase64String(File.ReadAllBytes(@"C:\Profitcentr_60_captcha.png"));
ms.Write(Convert.FromBase64String(base64), 0, Convert.FromBase64String(base64).Length);
Bitmap myBitmap = new Bitmap(ms);
int total = 0;
bool l_counter = false;
bool r_counter = false;
for (int i = 0; i < myBitmap.Width; i++)
{
l_counter = r_counter;
r_counter = false;
for (int j = 0; j < myBitmap.Height; j++)
{
if ((myBitmap.GetPixel(i,j).R == 117) && (myBitmap.GetPixel(i,j).G == 117) && (myBitmap.GetPixel(i,j).B == 117))
{
r_counter = true;
break;
}
}
if ((!l_counter) && (r_counter)) total++;
}
myBitmap.Dispose();
return total;
}
Ребята всем огромное спасибо за помощь! Оба предложенных варианта работают на ура!Вот чуть обновленный код для звездочек, выше уже дали подобный, но я спал) Да и у моего чуть другая схема, и он вроде чуть быстрее будет...
Сам пользуюсь почти таким-же кодом в своих проектах, но у меня входные данные сразу в base64, поэтому обернуто в MemoryStream. (У меня там разные капчи и слайдер в виде кусочка пазла, но фон этого кусочка пазла всегда белый, поэтому это работает )
Не знаю как работает у автора, но решил не удалять MemoryStream и добавил метод конвертирования картинки с компа в base64.
Вчера еще предлагал красный круг искать по такому-же методу, находить его левые границы и дальше уже кликать.
C#:using (MemoryStream ms = new MemoryStream()) { string base64 = Convert.ToBase64String(File.ReadAllBytes(@"C:\Profitcentr_60_captcha.png")); ms.Write(Convert.FromBase64String(base64), 0, Convert.FromBase64String(base64).Length); Bitmap myBitmap = new Bitmap(ms); int total = 0; bool l_counter = false; bool r_counter = false; for (int i = 0; i < myBitmap.Width; i++) { l_counter = r_counter; r_counter = false; for (int j = 0; j < myBitmap.Height; j++) { if ((myBitmap.GetPixel(i,j).R == 117) && (myBitmap.GetPixel(i,j).G == 117) && (myBitmap.GetPixel(i,j).B == 117)) { r_counter = true; break; } } if ((!l_counter) && (r_counter)) total++; } myBitmap.Dispose(); return total; }