주요 콘텐츠

generateArucoMarker

ArUco 마커 영상 생성

R2024a 이후

설명

imgs = generateArucoMarker(markerFamily,ids,markerSize)는 지정된 패밀리 markerFamily와 크기 markerSize, 그리고 대응하는 식별자 ids를 갖는 ArUco 마커 영상 imgs를 생성합니다.

예제

imgs = generateArucoMarker(___,NumBorderBits=numBits)는 위 구문의 모든 입력 인수 외에 마커를 생성할 때 추가할 마커의 경계 비트 수를 설정합니다. numBits를 양의 정수 값으로 지정하십시오. 디폴트 값은 1로 설정됩니다.

예제

모두 축소

12개의 ArUco 마커 영상을 생성하고 표시한 다음 PNG 파일에 씁니다.

생성할 마커의 개수, 크기, 패밀리, ID를 지정합니다.

numMarkers = 12;
markerSize = 50; % in pixels
markerFamily = "DICT_4X4_250";
ids = 1:numMarkers;

ArUco 마커를 생성합니다.

imgs = generateArucoMarker(markerFamily,ids,markerSize);

마커를 표시합니다.

tiledlayout(3,4,TileSpacing="compact")
for i = 1:numMarkers
    nexttile
    imshow(imgs(:,:,i))
    title("ID = " + ids(i))
end

각 마커 영상을 PNG 파일에 씁니다.

for i = 1:numMarkers
    filename = markerFamily + "_ID" + ids(i) + ".png";
    imwrite(imgs(:,:,i), filename)
end

입력 인수

모두 축소

ArUco 마커 패밀리로, 문자형 벡터, string형 스칼라, string형으로 구성된 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 각 요소는 아래 표에 나열된 유효한 ArUco 마커 패밀리 중 하나여야 합니다. 필요한 총 마커 개수, 마커 길이, 마커 코드워드 간 해밍 거리를 기반으로 응용 사례에 적절한 마커 패밀리를 선택하십시오. 동일한 패밀리에 포함된 마커 간의 최소 해밍 거리는 마커 검출 및 오류 정정이 가능한 수준을 결정합니다. 마커 개수가 적은 마커 패밀리는 마커 개수가 많은 패밀리보다 오류에 더 강인할 수 있으며, 마커 개수가 많은 패밀리는 더 많은 수의 비트를 추출해야 하므로 마커 검출 난이도가 높아질 수 있습니다. 다음과 같은 일반적인 규칙이 적용됩니다.

  • 검출할 비트 수가 적을수록 마커를 검출할 수 있는 거리의 범위가 더 길어집니다.

  • 올바른 식별과 디코딩을 위해 ArUco 마커에는 콰이어트 존(quiet zone)이라고도 하는 흰색 테두리가 필요합니다.

패밀리마커 크기(비트)패밀리의 마커 개수마커 간 최소 해밍 거리(비트)
"DICT_ARUCO_ORIGINAL"5×510243
"DICT_4X4_50"4×4504
"DICT_4X4_100"1003
"DICT_4X4_250"2502
"DICT_4X4_1000"10002
"DICT_5X5_50"5×5508
"DICT_5X5_100"1007
"DICT_5X5_250"2506
"DICT_5X5_1000"10005
"DICT_6X6_50"6×65013
"DICT_6X6_100"10012
"DICT_6X6_250"25011
"DICT_6X6_1000"10009
"DICT_7X7_50"7×75019
"DICT_7X7_100"25018
"DICT_7X7_250"25017
"DICT_7X7_1000"100014

데이터형: char | string | cell

마커 ID로, 양의 정수로 구성된 요소를 N개 가진 벡터로 지정됩니다. 각 요소는 음수가 아니어야 하며, 마커 패밀리에서 사용 가능한 총 마커 개수인 패밀리 크기보다 작아야 합니다. 예를 들어, "DICT_7X7_250"의 패밀리 크기는 250입니다.

각 마커의 크기(단위: 픽셀)로, 양의 정수로 지정됩니다. 이 값은 정사각형 ArUco 마커의 한 변의 길이를 설정합니다. 마커 크기는 지정된 마커 패밀리에서 요구되는 비트 수를 저장할 수 있을 만큼 충분히 커야 합니다. 예를 들어, 6×6 픽셀 크기를 요구하는 "DICT_6X6_100" 패밀리의 마커에 대해서는 5×5 픽셀의 영상을 생성할 수 없습니다. 자세한 내용은 markerFamily 입력 인수 설명에 나와 있는 표를 참조하십시오.

출력 인수

모두 축소

마커 영상으로, M×M×N 배열로 반환됩니다.

데이터형: uint8

버전 내역

R2024a에 개발됨

참고 항목

함수