Astel064
Помог мой пост, ставь +!
- Сообщения
- 276
- Репутация
- 51
- Версия AutoIt
- 3.3.6.1
- Версия
- 1.1.0.0
AutoIt: 3.3.6.1+
Версия: 1.1.0.0
Категория: Графика, GDI+, Данные, Файловая система
Описание: UDF для обнаружения изменений (или движения) на ранее созданном .BMP кадре веб-камеры.
Код/Пример:
Файл: ImgMatrix.inc
История версий:
Список функций:
Описание алгоритма работы:
Источник: autoit-script.ru
Автор: Astel064
Версия: 1.1.0.0
Категория: Графика, GDI+, Данные, Файловая система
Описание: UDF для обнаружения изменений (или движения) на ранее созданном .BMP кадре веб-камеры.
Код/Пример:
Код:
; Подключаем UDF в скрипт
#include "ImgMatrix.inc"
; Подключаем Array.au3 (для просмотра результата с помощью _ArrayDisplay)
#include <Array.au3>
; Создаем переменную для хранения массива Matrix и переменную для возращаемого массива.
Local $aMatrix = ""
Local $aReturn
; Предполагается, что @ScriptDir&"\Image.bmp" сохраняется другой программой. Это может быть как скриншет раб. стола, так и снимок с веб-камеры.
; Выполняем первый запуск функции. В переменную $aMatrix будет автоматически сохранен массив Matrix.
$aReturn = _ImgMatrix_Check(@ScriptDir&"\Image.bmp", 10, $aMatrix, @ScriptDir&"\Test.bmp", 2, 1)
; В файл @ScriptDir&"\Test.bmp" будет сохранена копия @ScriptDir&"\Image.bmp" с отметками контрольных точек и технической информацией.
; Проверяем результат на предмет ошибок. Если ошибки имеются, то выводим сообщение и завершаем скрипт.
If @Error Then Exit MsgBox(0,"Ошибка первого запуска", "Код: "&@Error)
; Выводим результат (массив будет со значениями 0, 0 в 0 строке)
_ArrayDisplay($aReturn)
; Начинаем бесконечный цикл проверки изображения с интервалом в 1 сек (1000 мсек.)
While 1
Sleep(1000)
; Выполняем повторный запуск функции. Параметры $iIntervalPersent, $iRudeLevel, $iCheckType изменять нельзя.
$aReturn = _ImgMatrix_Check(@ScriptDir&"\Image.bmp", 10, $aMatrix, @ScriptDir&"\Test.bmp", 2, 1)
; Проверяем результат на предмет ошибок. Если ошибки имеются, то выводим сообщение.
If @Error Then MsgBox(0,"Ошибка повторного запуска", "Код: "&@Error)
; Выводим результат (список измененных контр. точек. Изменений нет, то врернется массив со значениями 0, 0 в 0 строке)
_ArrayDisplay($aReturn)
; Выводим сообщение с количеством изм. контр. точек
MsgBox(0,"Кол-во", "Изменено контрольных точек: "&$aReturn[0][0] & "(" &$aReturn[0][1]& "%)")
Wend
Файл: ImgMatrix.inc
История версий:
1.0.0.0 - ?
1.0.0.1 - ?
1.1.0.0 - 2:44 20.10.2017
1.0.0.1 - ?
1.1.0.0 - 2:44 20.10.2017
Список функций:
_ImgMatrix_Check = Функция для проверки указанного изображения на наличие изменений
_ImgMatrix_ConvertImage = Конвертирует .BMP файл в формат .JPG и добавляет надпись
_ImgMatrix_ConvertImageEx_OpenImg = Открывает указанный BMP файл для дальнейшей расширенной конвертации
_ImgMatrix_ConvertImageEx_AddLabel = Добавляет надпись в изображение
_ImgMatrix_ConvertImageEx_CloseImg = Сохраняет ранее открытое функцией _ImgMatrix_ConvertImageEx_OpenImg изображение в указанный JPG файл и закрывает его (изображение)
_ImgMatrix_ConvertImageEx_GetARgbColor = Создает ARGB цвет (для функции _ImgMatrix_ConvertImageEx_AddLabel)
_ImgMatrix_ConvertImage = Конвертирует .BMP файл в формат .JPG и добавляет надпись
_ImgMatrix_ConvertImageEx_OpenImg = Открывает указанный BMP файл для дальнейшей расширенной конвертации
_ImgMatrix_ConvertImageEx_AddLabel = Добавляет надпись в изображение
_ImgMatrix_ConvertImageEx_CloseImg = Сохраняет ранее открытое функцией _ImgMatrix_ConvertImageEx_OpenImg изображение в указанный JPG файл и закрывает его (изображение)
_ImgMatrix_ConvertImageEx_GetARgbColor = Создает ARGB цвет (для функции _ImgMatrix_ConvertImageEx_AddLabel)
Описание алгоритма работы:
Функция делит изображение на равные части. Каждая часть сжимается, после чего функция получает параметры контрольной точки (цвет, яркость или контрастность) и заносит параметры точки в новый массив. Старый массив сверяется с новым, измененные контрольные точки заносятся в другой массив, который будет возвращен пользователю после завершения работы функции.
В случае, если функция запускается первый раз, то в качестве $aMatrixArray может быть передано любое значение (но не массив!). В этом случае, функция вернет список всех контр. точек (100% измененных точек). Также функция перезапишет $aMatrixArray для следующего использования. При втором запуске функции старый $aMatrixArray уже будет существовать, функция приступит к поиску измененных контрольных точек.
До первого запуска функции Вам потребуется создать переменную с любым названием - в нее будет автоматически сохранен массив Matrix. В дальнейшем, массив Matrix будет обновляться после каждого запуска функции.
ВНИМАНИЕ!
• Не изменяйте переменную с массивом Matrix.
• Не изменяйте параметры $iIntervalPersent, $iRudeLevel, $iCheckType при повторном использовании функции со старым массивом Matrix. Еслы Вам требуется изменить какой-либо из вышеперечисленных параметров после первого запуска функции, то создайте новую (или обнулите старую) переменную с массивом Matrix. Теперь можно выполнить первый запуск функции с новыми параметрами. Массив Matrix будет перестроен.
В случае, если функция запускается первый раз, то в качестве $aMatrixArray может быть передано любое значение (но не массив!). В этом случае, функция вернет список всех контр. точек (100% измененных точек). Также функция перезапишет $aMatrixArray для следующего использования. При втором запуске функции старый $aMatrixArray уже будет существовать, функция приступит к поиску измененных контрольных точек.
До первого запуска функции Вам потребуется создать переменную с любым названием - в нее будет автоматически сохранен массив Matrix. В дальнейшем, массив Matrix будет обновляться после каждого запуска функции.
ВНИМАНИЕ!
• Не изменяйте переменную с массивом Matrix.
• Не изменяйте параметры $iIntervalPersent, $iRudeLevel, $iCheckType при повторном использовании функции со старым массивом Matrix. Еслы Вам требуется изменить какой-либо из вышеперечисленных параметров после первого запуска функции, то создайте новую (или обнулите старую) переменную с массивом Matrix. Теперь можно выполнить первый запуск функции с новыми параметрами. Массив Matrix будет перестроен.
Источник: autoit-script.ru
Автор: Astel064
- Автор
- Astel064
Вложения
Последнее редактирование: