Поиск значка на изображении OpenCVC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Поиск значка на изображении OpenCV

Сообщение Anonymous »

Я новичок в области компьютерного зрения, и у меня возникла проблема с поиском значка рыбы на изображении. В частности, мне нужно найти значок рыбы из игры и получить его координаты. Размер значка меняется в зависимости от его положения в воде, а также от его цвета при вытаскивании рыбы. Кроме того, эффекты внутри игры часто затрудняют процесс поиска значка.
Основная проблема заключается в том, что значок часто меняет свой масштаб. В результате методы, которые я пытался использовать для поиска, терялись или лишь изредка давали нормальный результат.
Для начала я пробовал использовать сопоставление шаблонов, но это не помогло. Не будет хорошо, если значок будет другого размера. Еще я пробовал сделать массив из нескольких размеров, но это работало очень нестабильно и сильно тормозило алгоритм.

Код: Выделить всё

std::vector fishIcon;
const std::vector SCALES = { 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4 };

//Going through all the scales until you find the right one
for (Mat ic : fishIcon) {
if (FindObject(ic, screenshotGray, max_loc, result, true, 0.8)) {
fishIconPosition = Point(max_loc.x, max_loc.y);
found = true;
break;
}
}

//Code for creating multiple masterstabs
for (double scale : SCALES) {
Mat resIcon;
resize(sourceIcon, resIcon, Size(0, 0), scale, scale);

fishIcon.push_back(resIcon);
}

//A method for searching for an icon in an image
bool botActions::FindObject(Mat& templateForFind, Mat& screenshot, Point& maxLoc, Mat& result, bool debug, double confid) {
matchTemplate(screenshot, templateForFind, result, TM_CCOEFF_NORMED);
double minVal, maxVal;
minMaxLoc(result, &minVal, &maxVal, NULL, &maxLoc);

if (debug) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78249294/search-for-an-icon-on-an-image-opencv[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»