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

 
Ответить в эту темуОткрыть новую тему
> Исключение изображения
Capucci
сообщение 7.3.2019, 20:10
Сообщение #1


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Приветствую!

Имеется скрипт по поиску изображений с помощью функции findimage. Скрипт ищет 15 различных изображений, 5 из них имеют отличительные особенности, которые находятся скриптом в других изображениях не из скрипта, поэтому они попадают в результаты, а хотелось бы в исключения. Процент совпадения менять нельзя, т.к. произойдёт сбой на других изображениях из скрипта.
Пытался некоторыми способами сделать исключение, но выходит так, что если скрипт видит изображение-исключение, то на него внимание не обращает и начинает скрипт работать заново, но здесь происходит зацикливание - скрипт будет искать постоянно это изображение-исключение и видеть только его, пока оно не пропадёт или не появится изображение, которое в списке скрипта находится хотя бы на одну строчку выше изображения-исключения.

Что хочу сказать и спросить: есть простой скрипт по поиску изображений (findimage), который логически ищет изображения и добавляет в результат. А есть ли такой же простой способ добавить найденное изображение в исключение, который не будет препятствовать поиску нужных изображений?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2019, 20:17
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Без картинок трудно что-то сказать.
Цитата
Процент совпадения менять нельзя, т.к. произойдёт сбой на других изображениях из скрипта.

Параметр можно задать переменной, для каждой картинки свой процент. Но этот варинат на крайний случай.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 7.3.2019, 21:22
Сообщение #3


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 7.3.2019, 21:17) *

Без картинок трудно что-то сказать.

Параметр можно задать переменной, для каждой картинки свой процент. Но этот варинат на крайний случай.


Да, можно, но всё равно при нахождении картинки-исключения скрипт будет зацикливаться на ней и не будет искать другие, пока это изображение не пропадёт.
Но за наводку спасибо - решил ею другую проблему)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 8.3.2019, 23:22
Сообщение #4


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Всё же нашёл решение, чтобы скрипт делал исключение картинок, которые нужно пропускать. Довольно всё вышло просто:

Код

set #startX 110
set #startY 240
set #endX 1238
set #endY 723
set $path "C:\Program Files\Image\"      // путь к картинкам

set %image [1] Brown      // Нужная картинка
set %image [2] Red      // Нужная картинка
set %image [3] Blue      // Нужная картинка
set %image [4] Orange      // Нужная картинка
set %image [5] Purple      // Нужная картинка
set %image2 [6] Black      // Исключение
set %image2 [7] White      // Исключение

set #size size(%image)

for #i 1 #size 1                     // цикл для поиска картинок
    set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2 95)
    set #b findimage (#startX #startY #endX #endY ($path%image2[#i].bmp) %arr 2 101)
    if  #a > 0 or #b > 0
        goto metka
         end_if
       end_for


Необходимо картинки-исключения занести в отдельную категорию (image2) и в цикле для поиска картинок дать этой категории совпадение в 101% и в этом случае картинка никогда не найдётся и будет добавлена, так сказать, в исключение.
Благо % не заканчивается на 100 :-)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.3.2019, 23:34
Сообщение #5


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
совпадение в 101% и в этом случае картинка никогда не найдётся

Зачем искать то что никогда не найдётся?
Не говоря уже что size(%image) равно 5, а картинки-исключения записаны в 6 и 7 элементы. Т. е. вообще не ищутся, потому что цикл заканчивается на 5.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 0:02
Сообщение #6


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 0:34) *

Зачем искать то что никогда не найдётся?
Не говоря уже что size(%image) равно 5, а картинки-исключения записаны в 6 и 7 элементы. Т. е. вообще не ищутся, потому что цикл заканчивается на 5.

К примеру, у нас имеется в поиске картинка Brown, но иногда скрипт путает Brown с Black, а чтобы искался только Brown нужно добавить Black в исключение или повысить % совпадения у Brown, но этого сделать нельзя, поскольку % стоит и так на самом большом значении - 95, если выше, то Brown искаться не будет, поэтому картинку Black добавляем в отдельную категорию и ставим % совпадения 101. В связи с тем, что более 100% совпадения не может быть в принципе, то выходит, что картинка имеющая 101% совпадения добавляется в список, который никогда не найдётся.
Другими словами, скрипт видит картинку Black, но он не добавляет её в результаты, т.к. нет совпадения в 101%.

Цитата
size(%image) равно 5, а картинки-исключения записаны в 6 и 7 элементы. Т. е. вообще не ищутся, потому что цикл заканчивается на 5.

Насчёт этого: не знаю почему, но у меня всё работает хорошо и так)) Т.е. работает как категория image, так и категория image2.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 0:13
Сообщение #7


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Код
set %image [1] Brown      // Нужная картинка
set %image [2] Red      // Нужная картинка
set %image [3] Blue      // Нужная картинка
set %image [4] Orange      // Нужная картинка
set %image [5] Purple      // Нужная картинка
set %image2 [6] Black      // Исключение
set %image2 [7] White      // Исключение

set #size size(%image)

log clear
log mode compact
for #i 1 #size 1
    log #i
    log %image[#i]
    log %image2[#i]    // и что тут может работать? Black и White не будут искаться
end_for
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 0:42
Сообщение #8


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 1:13) *

Код
set %image [1] Brown      // Нужная картинка
set %image [2] Red      // Нужная картинка
set %image [3] Blue      // Нужная картинка
set %image [4] Orange      // Нужная картинка
set %image [5] Purple      // Нужная картинка
set %image2 [6] Black      // Исключение
set %image2 [7] White      // Исключение

set #size size(%image)

log clear
log mode compact
for #i 1 #size 1
    log #i
    log %image[#i]
    log %image2[#i]    // и что тут может работать? Black и White не будут искаться
end_for
end_script



(IMG:https://b.radikal.ru/b17/1903/fe/28dc5e8bb15d.png)

Вот так вот ищет)

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 0:49
Сообщение #9


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Это какая версия пилота?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 0:52
Сообщение #10


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 1:49) *

Это какая версия пилота?

Последняя - V2.41 WK
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 0:57
Сообщение #11


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Если
Код
set %image2 [1] Black      // Исключение
set %image2 [2] White      // Исключение

то в логе будут Black и White
А так нет:
Код
set %image2 [6] Black      // Исключение
set %image2 [7] White      // Исключение

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 1:10
Сообщение #12


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 1:57) *

Если
Код
set %image2 [1] Black      // Исключение
set %image2 [2] White      // Исключение

то в логе будут Black и White
А так нет:
Код
set %image2 [6] Black      // Исключение
set %image2 [7] White      // Исключение



Верно. Сейчас потестил, выходит что если Brown и Black объединены, то не ищутся оба и выдаёт ошибку в координатах, т.е. создаётся конфликт.
Но, если запускать скрипт только с одной категорией (где исключение) с совпадением 101%, то всё работает.

Единственная загвоздка - это объединить две категории в одном скрипте.

Есть идеи?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 1:17
Сообщение #13


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Этот код изначально ошибочный. Опишите нужно искать, а что нет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 1:23
Сообщение #14


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 2:17) *

Этот код изначально ошибочный. Опишите нужно искать, а что нет.

Код

set %image [1] Brown // 95%
set %image [2] Red // 95%
set %image [3] Blue // 95%
set %image [4] Orange // 95%
set %image [5] Purple // 95%
set %image2 [6] Black     // 98%
set %image2 [7] White      // 98%


Пусть будет пока совпадение до 100%.
Есть две категории % совпадения. Необходимо, чтобы поиск этих категорий происходил из одного скрипта.



Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 1:37
Сообщение #15


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Код
init_arr %image Brown Red Blue Orange Purple Black White
init_arr %accuracy 95 95 95 95 95 98 98

set #size size(%image)

log clear
log mode compact
for #i 1 #size 1
    log %image[#i]  %accuracy[#i]
end_for
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 2:07
Сообщение #16


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 2:37) *

Код
init_arr %image Brown Red Blue Orange Purple Black White
init_arr %accuracy 95 95 95 95 95 98 98

set #size size(%image)

log clear
log mode compact
for #i 1 #size 1
    log %image[#i]  %accuracy[#i]
end_for
end_script



Протестировал - два разных % совпадения ищутся правильно и живут в гармонии.
% выше 100 в данном скрипте не работает, хоть 1000 ставь, всё равно картинка ищется.
Благодарю за помощь!

Тем не менее, в изначальном скрипте с сайта, 101% работает, но исключительно с одной категорией, т.е. все картинки находящиеся в этой категории искаться не будут. Этот превосходящий 100 % пилот видит, значит по идее должно работать и в другом месте. Можно ли всё-таки его в теории припахать как-то в новый скрипт?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 2:20
Сообщение #17


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Смысл 101%? Это тоже самое что вообще не искать картинку.
В кармане лежит 100 рублей, вы пытаетесь найти 101 рубль. Так зачем искать то, что не найти?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Capucci
сообщение 9.3.2019, 2:29
Сообщение #18


**

Neophyte
Сообщений: 25
Регистрация: 5.3.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.253



Цитата(cirus @ 9.3.2019, 3:20) *

Смысл 101%? Это тоже самое что вообще не искать картинку.
В кармане лежит 100 рублей, вы пытаетесь найти 101 рубль. Так зачем искать то, что не найти?

Попробуйте протестировать этот 101% на одной картинке. Оставив совпадение по умолчанию - искаться соответственно будет, поставим 101% - картинку пилот не видит, хотя она в списке есть. Я меняю только %, больше ничего не трогаю. Ведь картинка из скрипта никуда не удаляется, ничего с ней не делается, меняется только один параметр - совпадение. С одним % она находится, с другим - нет. Вот в этом смысл. Я понимаю, что здесь не до конца может быть логично, но у меня это работает так. Просто попробуйте, и если что-то будет работать не так, как говорю я, то значит я действительно ошибаюсь (IMG:style_emoticons/default/blink.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2019, 2:36
Сообщение #19


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
поставим 101% - картинку пилот не видит, хотя она в списке есть.

И правильно что не видит. Если в картинке 1000 пикселей, а найти надо 1010 пикселей.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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