Python을 통한 AR 플래그 인식

13016 단어 Python
Python으로 AR 로고를 식별하다
최종 체크는 이미지의 네 구석에 배치된 AR 태그입니다.
그중의 사다리꼴을 수정해서 표시하는 일을 하고 싶어요.
우선 AR 로고 인식에만 도전한다.
이쪽 블로그를 참고하게 해 주세요.
http://okatenari.com/2017/11/28/python-ar/
혹은 참고로 우선 기본적으로 복사를 통해 동작을 확인한다.
먼저 태그 생성
arMarker.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import cv2

aruco = cv2.aruco
dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)

def arGenerator():
    fileName = "ar.png"
    generator = aruco.drawMarker(dictionary, 0, 100)
    cv2.imwrite(fileName, generator)

    img = cv2.imread(fileName)
    cv2.imshow('ArMarker',img)
    cv2.waitKey(0)
arGenerator()

만들어진 기호가 이런 느낌이에요.

카메라에서 AR 표지를 검출하다.
이것은 참고처에서 거의 완전히 복사한 것이다.
arReaderByCamera.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import cv2

aruco = cv2.aruco #arucoライブラリ
dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)

def arReader():
    cap = cv2.VideoCapture(0) #ビデオキャプチャの開始

    while True:

        ret, frame = cap.read() #ビデオキャプチャから画像を取得

        Height, Width = frame.shape[:2] #sizeを取得

        img = cv2.resize(frame,(int(Width),int(Height)))

        corners, ids, rejectedImgPoints = aruco.detectMarkers(img, dictionary) #マーカを検出

        aruco.drawDetectedMarkers(img, corners, ids, (0,255,0)) #検出したマーカに描画する

        cv2.imshow('drawDetectedMarkers', img) #マーカが描画された画像を表示

        cv2.waitKey(1) #キーボード入力の受付

    cap.release() #ビデオキャプチャのメモリ解放
    cv2.destroyAllWindows() #すべてのウィンドウを閉じる


arReader()

실행 결과.

다소의 경사도 식별될 수 있다.

카메라가 없는 환경에서 이미지로부터 직접 읽기 확인
arReaderByImage.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import cv2

aruco = cv2.aruco #arucoライブラリ
dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)

def arReader():

    img = cv2.imread("test.png")

    corners, ids, rejectedImgPoints = aruco.detectMarkers(img, dictionary) #マーカを検出

    aruco.drawDetectedMarkers(img, corners, ids, (0,255,0)) #検出したマーカに描画する

    cv2.imshow('drawDetectedMarkers', img) #マーカが描画された画像を表示

    cv2.waitKey(0) #キーボード入力の受付


arReader()

이런 그림을 만들어 봤어요.

결과는 이렇다

검출됐습니다.
QR코드(텍스트)도 해볼게요.
카메라의 QR 코드 문자 읽기 및 내보내기
qr.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pyzbar.pyzbar import decode
from PIL import Image
import cv2

cap = cv2.VideoCapture(0) #ビデオキャプチャの開始

while True:

    ret, frame = cap.read() #ビデオキャプチャから画像を取得

    Height, Width = frame.shape[:2] #sizeを取得

    img = cv2.resize(frame,(int(Width),int(Height)))

    PIL_Image=Image.fromarray(img)


    cv2.imshow('Qr Test', img)

    data = decode(PIL_Image)
    # print(data[0][0].decode('utf-8', 'ignore'))
    if(data != []):
        print(data[0][0]) #何か読めていたら表示する

    cv2.waitKey(1) #キーボード入力の受付

cap.release() #ビデオキャプチャのメモリ解放
cv2.destroyAllWindows() #すべてのウィンドウを閉じる



좋은 웹페이지 즐겨찾기