Здравствуйте, гость ( Вход | Регистрация )

3 страниц V < 1 2 3  
Ответить в эту темуОткрыть новую тему
> Поиск скученности пикселей, Готовый скрипт
nykep
сообщение 16.5.2023, 16:25
Сообщение #41


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1194
Пользователь №: 15.246
Возраст: 25



переделал свой вариант, теперь не застревает на первом найденном пикселе, а ищет первое скопление которое удовлетворяет условию внутри for
Код
--lua
local A = findcolor(827, 417, 1029, 555, 2767576, '%arr', 2, -1, 0)
if A then
    for i = 1, A do
        local B = findcolor(arr[i][1] - 20, arr[i][2] - 20, arr[i][1] + 20, arr[i][2] + 20, 2767576, '%arr2', 2, -1, 0)
        if B and B > 300 then
            move (arr[i][1], arr[i][2])
            break
        end
    end
end


Сообщение отредактировал nykep - 16.5.2023, 18:38
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.1.2024, 18:40
Сообщение #42


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Код
    find = {540, 160, 857, 428,
        radius = 10,
        min_pixel_count = 50, max_pixel_count = 1000,
        color = {'0x9EFCFF-0xA2FDFF'}}
    local a, group = find_heap_pixel(find)


a runtime error.
.\lua_plugins\find_heap_pixel.lua:45: attempt to compare number with nil

Шо не так?

Нашел. Рекомендую min_color в примерах вынести выше необязательных параметров. Смотрю хвост пошел необязательный - скипнул автоматом.

Сообщение отредактировал DarkMaster - 28.1.2024, 19:16


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.2.2024, 15:43
Сообщение #43


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Чет так и не завелось - нули возвращало.
Код

-- result_arr_sorted = pool_size(arr, distance)
-- arr - массив координат, где arr[i][1] и arr[i][2] x и y координаты.
-- т.е. принимает в формате результата работы findimage/findcolor
-- distance - дистанция которая считается единым объектом.
--
-- Вернет массив в котором у каждого элемента будут дополнительные поля:
-- pool_size содержащие количество объектов в группе для каждой точки,
-- массив будет отсортирован в порядке убывания result[1] - будет соответственно
-- содержать самый крупный объект.
-- pool_x - x координата середины группы объектов
-- pool_y - y координата середины группы объектов

-- Внимание! Исходный массив так же будет модифицирован!
-- В него будут добавлены поля, но порядок изменен не будет.
-- Массив с результатом просто набор ссылок на исходные вложенные таблицы.
local function pool_size(arr, distance)
    -- copy array
    local result = {}
    for i = 1, #arr do
        result[i] = arr[i]
    end

    -- add pool_size for each point
    for i = 1, #result do
        result[i].pool_size = 0
        result[i].pool_x = 0
        result[i].pool_y = 0
        for j = 1, #result do
            if ((result[i][1]-result[j][1])^2 + (result[i][2]-result[j][2])^2)^0.5 <= distance then
                result[i].pool_size = result[i].pool_size + 1
                result[i].pool_x = result[i].pool_x + result[j][1]
                result[i].pool_y = result[i].pool_y + result[j][2]
            end
        end
        result[i].pool_x = math.floor(result[i].pool_x / result[i].pool_size + 0.5)
        result[i].pool_y = math.floor(result[i].pool_y / result[i].pool_size + 0.5)
    end

    table.sort(result, function(a, b) return a.pool_size > b.pool_size end)
    return result
end

local arr = {{1, 1}, {1, 2}, {2, 2}, {3, 3}}

local arr_p = pool_size(arr, 1)


Сообщение отредактировал DarkMaster - 5.2.2024, 15:51


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

3 страниц V < 1 2 3
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 16.4.2024, 10:19
Designed by Nickostyle