본문으로 건너뛰기

cv - 이미지를 도형 윤곽 정보로 변환 (:cv_to_shapes)

선언

도형 모음, 시각화 이미지 = 이미지:cv_to_shapes([윤곽 매칭 설정])

매개변수

  • 윤곽 매칭 설정
    선택적 매개변수이며 테이블형입니다.

    윤곽 매칭 설정 필드
    {
    should_visualize = false | true, -- 선택적 매개변수, 시각화 결과 출력 여부, 기본값 false
    closed = false | true, -- 선택적 매개변수, 도형을 닫을지 여부, 기본값 false
    blur_size = integer_value, -- 선택적 매개변수, 블러 커널의 픽셀 크기, 양의 홀수만 가능, 기본값 3
    canny_threshold1 = 100, -- 선택적 매개변수, 에지 최소 임계값, 기본값 100
    canny_threshold2 = 200, -- 선택적 매개변수, 에지 최대 임계값, 기본값 200
    approx_epsilon = integer_value, -- 선택적 매개변수, 윤곽 근사 시 둘레에 적용할 백분율로 복잡한 윤곽을 단순화하는 데 사용, 기본값 2
    }

반환값

  • 도형 모음
    테이블형이며, 이미지에 있는 도형들의 꼭짓점 정보입니다.

    도형 모음 구조
    {
    { -- 도형 1
    { -- 도형 1 꼭짓점 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- 도형 1 꼭짓점 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    { -- 도형 2
    { -- 도형 2 꼭짓점 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- 도형 2 꼭짓점 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    ...
    }
  • 시각화 이미지
    이미지 객체입니다. options.should_visualize가 true이면 이 반환값은 이미지 객체인 시각화 결과입니다.

설명

이미지의 윤곽을 도형 꼭짓점 정보로 변환합니다.
도형으로 변환할 이미지는 너무 복잡하지 않게 하고, 윤곽이 뚜렷한 닫힌 도형을 사용하는 것이 좋습니다.

예제

local cv = require("image.cv")
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- 반환값은 하나의 도형 목록이며 여러 도형을 포함할 수 있음
local shapes, visimg = img:cv_to_shapes({
blur_size = 3, -- 블러 커널 크기
approx_epsilon = 2, -- 잔돌기 억제율 0~100
closed = true, -- 닫힌 도형
should_visualize = true, -- 시각화 결과 출력 여부. true이면 두 번째 반환값은 이미지임
})
nLog(shapes) -- 도형 목록의 꼭짓점 정보 출력
dialog():add_image(visimg):show() -- 도형 이미지를 시각화하여 확인