반응형

원(circle)만을 인식시켜주는 프로그래밍이다.

사용하기전 필요 라이브러리는 cv2와 numpy이다.

라이브버리 설치 방법은 아래 참조

ansan-survivor.tistory.com/308

 

[Python OpenCV] 파이썬 바코드(barcode), QR코드 인식 프로그램 코드

먼저 바코드를 인식하는 open source 라이브러리를 제공해주는데, 그 라이브러리를 pip을 이용해 다운로드 한다. 윈도우의 cmd 창을 이용해서 다운받아본다. 총 3개의 라이브러리가 필요하다. 1. openCV

ansan-survivor.tistory.com

동일한 디렉터리에 circle2.jpg 라는 원형을 갖고있는 이미지에서 원만 추출한다.

'''

made by 안산드레이아스
https://ansan-survivor.tistory.com/

'''

import cv2
import numpy as np

def houghCircle():
    # 원이 있는 이미지를 올림.
    img1 = cv2.imread('circle2.jpg')
    img2 = img1.copy()

    # 0~9까지 가우시안 필터로 흐리게 만들어 조절함.
    img2 = cv2.GaussianBlur(img2, (9, 9), 0)
    # 그레이 이미지로 바꿔서 실행해야함.
    imgray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

    # 원본과 비율 / 찾은 원들간의 최소 중심거리 / param1, param2를 조절해 원을 찾음
    circles = cv2.HoughCircles(imgray, cv2.HOUGH_GRADIENT, 1, 10, param1=60, param2=50, minRadius=0, maxRadius=0)

    if circles is not None:
        circles = np.uint16(np.around(circles))

        print(circles)

        for i in circles[0, :]:
            cv2.circle(img1, (i[0], i[1]), i[2], (255, 255, 0), 2)

        cv2.imshow('ori',img2)
        cv2.imshow('HoughCircle', img1)


        cv2.waitKey(0)
        cv2.destroyAllWindows()
    else:
        print('원을 찾을 수 없음')

houghCircle()

(테스트)

원본 이미지 circle2.jpg

파이썬 코드 돌린 후

원형을 탐지하여 하늘색으로 표시한다.

 

 

반응형

+ Recent posts