Find-HeapColor

Поиск объекта по нескольким цветам.
Параметры

  • -Path Изображение, загруженное в память / путь к изображению на диске.

  • -ListColor Список цветов и их количество необходимое для поиска объекта.

  • -SizeObject Размер объекта, ширина и высота.

  • -SizeNoSearch Размер области относительно найденного объекта где не искать.

  • -Deviation Отклонение в цвете.

  • -MinColor Минимальное количество цветов, необходимых для идентификации объекта.

  • -MinPixel Минимальное количество пикселей для поиска объекта.

  • -MaxPixel Максимальное количество пикселей для поиска объекта.

  • -Count Количество искомых объектов или 0 - искать все.

Возвращаемое значение

  • Список хеш-таблиц (Hashtable).

    PropertyDescription
    FirstPixelПервый найденный пиксель.
    FoundColorsНайденные цвета и их количество.
    LocationAverageСреднее арифметичествое координат. Центр объекта.

Примеры

  1. Сделать скрин экрана, найти папки на рабочем столе и навести на них курсор.

    Wake up, Neo, select all

    Clear-Host
    $ListColor = (
    ('FEE8A0', 50) # цвет и количество пикселей
    )

    $img = Get-Image -Screen # скрин всего экрана

    # поиск объекта размером 30*30, отклонение в цвете 2
    $result = Find-HeapColor -Image $img -ListColor $ListColor -SizeObject 30, 30 -Deviation 2
    Write-Host "Найдено объектов: $($result.Count)" -ForegroundColor Cyan
    foreach($Item in $result) # цикл для всех найденных объектов
    {
    Move-Cursor $Item.FirstPixel # навести курсор на каждый объект
    sleep -m 500
    }
    $img.Dispose() # удалить изображение
  2. Найти объект состоящий из нескольких цветов.

    Wake up, Neo, select all

    Clear-Host
    $ListColor = (
    ('333592', 11),
    ('AD4B12', 10),
    ('CB2C4B', 7),
    ('115E24', 6),
    ('E7B12E', 5)
    )

    $img = Get-Image -Screen
    $result = Find-HeapColor -Image $img -ListColor $ListColor -SizeObject 40, 40 -Deviation 4 -Count 1
    $result
    foreach($Item in $result)
    {
    Move-Cursor $Item.LocationAverage
    sleep -m 500
    }
    $img.Dispose()