이미지에서 색상 찾기 (:find_color)
선언
가로 좌표, 세로 좌표 = 이미지:find_color({
[find_all = 여러 결과 검색 여부,]
[max_results = 최대 결과 수,]
[max_miss = 최대 미일치 허용 개수,]
[find_order = 색상 검색 순서,]
[csim_algorithm = 색상 유사도 알고리즘,]
{기준점 가로 좌표, 기준점 세로 좌표, 기준점 색상[, 기준점 유사도]},
{오프셋 지점 가로 좌표*, 오프셋 지점 세로 좌표*, 오프셋 지점 색상*[, 오프셋 지점 유사도*]},
{오프셋 지점 가로 좌표*, 오프셋 지점 세로 좌표*, 오프셋 지점 색상*[, 오프셋 지점 유사도*]},
...
} [, 전역 유사도, 왼쪽, 위쪽, 오른쪽, 아래쪽 ])
매개변수
-
여러 결과 검색 여부
선택적 불리언 매개변수입니다. 이 필드를 true로 설정하면 범위 안의 모든 일치 위치를 {{x1, y1}, {x2, y2}, ...} 형식의 테이블로 반환합니다. 기본값은 false입니다. -
최대 결과 수
선택적 정수 매개변수입니다. find_all(여러 결과 검색 여부) 필드가 true일 때 반환할 최대 결과 수를 나타냅니다. 최대 1000까지 설정할 수 있으며 기본값은 100입니다. -
최대 미일치 허용 개수
선택적 정수 매개변수입니다. 허용할 수 있는 일치하지 않는 지점의 최대 개수입니다. 기본값은 0이며, 이 경우 모든 지점이 일치해야 검색에 성공합니다. -
색상 검색 순서
선택적 정수 매개변수입니다. 색상을 검색하는 순서를 나타냅니다. 값의 범위는 1~8이고 기본값은 1입니다.색상 검색 순서 값 설명
1 위→아래, 왼쪽→오른쪽
2 왼쪽→오른쪽, 위→아래
3 오른쪽→왼쪽, 위→아래
4 위→아래, 오른쪽→왼쪽
5 아래→위, 오른쪽→왼쪽
6 오른쪽→왼쪽, 아래→위
7 왼쪽→오른쪽, 아래→위
8 아래→위, 왼쪽→오른쪽화면 색상 검색 함수 screen.find_color에는 이 필드가 없습니다.
색상 검색 순서 예제 -
색상 유사도 알고리즘(20250302 버전부터 지원)
선택적 정수 매개변수입니다. 색상 유사도 알고리즘을 지정하며 기본값은 0입니다.색상 유사도 알고리즘
0 XXT 기본 알고리즘: 기울기가 가파르며 차이가 커질수록 유사도가 빠르게 낮아집니다
1 맨해튼 알고리즘: 기울기가 완만합니다
2 유클리드 알고리즘: 기울기가 완만합니다 -
기준점 가로 좌표, 기준점 세로 좌표
정수입니다. 기준 좌표를 나타냅니다. 색상 검색 범위를 이 한 지점으로 제한하는 것이 아니라 오프셋 위치에 대한 상대 좌표의 기준만 제공합니다. 오프셋을 사용하지 않는 경우 0, 0을 입력할 수 있습니다. -
기준점 색상
정수입니다. 검색할 기준점의 색상을 나타냅니다. -
기준점 유사도
선택적 정수 매개변수입니다. 검색할 기준점 색상의 유사도이며, 값의 범위는 1~100이고 기본값은 100입니다. -
오프셋 지점 가로 좌표*, 오프셋 지점 세로 좌표*
정수입니다. 오프셋 위치의 좌표를 나타냅니다. -
오프셋 지점 색상*
정수입니다. 오프셋 위치에서 일치해야 하는 색상을 나타냅니다. -
오프셋 지점 유사도*
선택적 정수 매개변수입니다. 오프셋 위치 색상의 유사도이며, 값의 범위는 -100~100이고 기본값은 100입니다. 음수 유사도는 해당 절댓값보다 유사도가 낮아야 일치함을 의미합니다. -
전역 유사도
선택적 정수 매개변수입니다. 개별 지점에 유사도를 지정하지 않은 경우 모든 지점에 이 유사도가 적용됩니다. 값의 범위는 1~100이고 기본값은 100입니다. -
왼쪽, 위쪽, 오른쪽, 아래쪽
선택적 정수 매개변수입니다. 검색 영역을 나타내며 기본값은 전체 이미지입니다.
반환값
- 가로 좌표, 세로 좌표
정수입니다. 일치하는 색상 구조의 첫 번째 색상 좌표를 반환합니다. 검색에 실패하면 -1, -1을 반환합니다.
설명
유사도 모드로 검색하여 영역에서 완전히 일치하는 첫 번째 다중 지점 색상 구조의 위치를 가져옵니다.
색상 편차 모드의 사용법은 다중 지점 색상 편차 모드로 색상 찾기(screen.find_color)를 참고하십시오.
예제
img = screen.image()
x, y = img:find_color({
{ 0, 0, 0xec1c23},
{ 12, -3, 0xffffff, 85},
{ 5, -18, 0x00adee},
{ -1, -10, 0xffc823},
{ 2, -34, 0xa78217},
{ 12, -55, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
이미지의 왼쪽 위가 0, 0이고 오른쪽 아래가 100, 100인 영역에서 첫 번째 지점의 색상이 0xec1c23과 유사도가 90보다 크고
그 지점에 대한 상대 좌표 (12, -3) 위치의 색상이 0xffffff과 유사도가 85보다 크며
그 지점에 대한 상대 좌표 (5, -18) 위치의 색상이 0x00adee와 유사도가 90보다 크고
또한…… (이후 조건도 동일) 모두 일치하는 지점을 찾습니다.
--]]
--
-- 다음 코드는 위와 같습니다.
--
x, y = img:find_color({
{ 509, 488, 0xec1c23},
{ 521, 485, 0xffffff, 85},
{ 514, 470, 0x00adee},
{ 508, 478, 0xffc823},
{ 511, 454, 0xa78217},
{ 521, 433, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
이미지의 왼쪽 위가 0, 0이고 오른쪽 아래가 100, 100인 영역에서 첫 번째 지점의 색상이 0xec1c23과 유사도가 90보다 크고
그 지점에 대한 상대 좌표 (521-509, 485-488) 위치의 색상이 0xffffff과 유사도가 85보다 크며
그 지점에 대한 상대 좌표 (514-509, 470-488) 위치의 색상이 0x00adee와 유사도가 90보다 크고
또한…… (이후 조건도 동일) 모두 일치하는 지점을 찾습니다.
--]]