[PYTHON] 파이썬을 사용하여 타겟에서 총알 구멍을 탐지하는 법
PYTHON파이썬을 사용하여 타겟에서 총알 구멍을 탐지하는 법
파이썬과 opencv를 사용하여 타겟에서 총알 구멍을 감지하는 방법을 알고 싶습니다.
나는 그 둘레에 등고선을 그릴 수 없다. 지금까지 임계 값을 사용하여 작업했으며 다음 결과를 얻었습니다 (임계 값 및 이진 AND 후 이미지).
여기에 원본 이미지가 있습니다.
총알 구멍을 감지하고 이에 따라 점수를 계산하기 위해 어떤 접근 방식을 따라야하는지 모릅니다.
어떤 도움을 주시면 감사하겠습니다.
해결법
-
==============================
1.색상 분할 (Segmentation)이라는 매우 간단한 유형의 분할 기법을 사용하면 이진 이미지를 얻기 위해 주어진 RGB 이미지에 임계 값을 적용 할 수 있습니다.
색상 분할 (Segmentation)이라는 매우 간단한 유형의 분할 기법을 사용하면 이진 이미지를 얻기 위해 주어진 RGB 이미지에 임계 값을 적용 할 수 있습니다.
img = cv2.imread('/Users/anmoluppal/Desktop/cAMDX.jpg') img_thresholded = cv2.inRange(img, (60, 60, 60), (140, 140, 140))
이진 이미지의 노이즈는 다음과 같이 이진 이미지의 여는 작업을 사용하여 제거 할 수 있습니다.
kernel = np.ones((10,10),np.uint8) opening = cv2.morphologyEx(img_thresholded, cv2.MORPH_OPEN, kernel)
이제 총알 구멍에 대한 명확한 그림이 있습니다. 마지막 부분은 이러한 윤곽선을 찾고 전경을 강조 표시하기 위해 주변에 원 / 사각형을 그립니다.
contours, hierarchy = cv2.findContours(opening.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) print len(contours) for contour in contours: (x,y),radius = cv2.minEnclosingCircle(contour) center = (int(x),int(y)) radius = int(radius) cv2.circle(img,center,radius,(0,255,0),2) # labelling the circles around the centers, in no particular order. position = (center[0] - 10, center[1] + 10) text_color = (0, 0, 255) cv2.putText(img, str(i + 1), position, cv2.FONT_HERSHEY_SIMPLEX, 1, text_color, 3)
from https://stackoverflow.com/questions/33321303/how-to-detect-bullet-holes-on-the-target-using-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 양조 한 python 2.7로 OS X 10.8에 virtualenv를 설치할 수 없습니다. (0) | 2018.11.18 |
---|---|
[PYTHON] sns.countplot에서 중복되는 x 축 레이블을 방지하는 방법 (0) | 2018.11.17 |
[PYTHON] Matplotlib fill_between가 plot_date와 호환되지 않습니다. (0) | 2018.11.17 |
[PYTHON] 팬더 DataFrame을 주황색 테이블로 변환 (0) | 2018.11.17 |
[PYTHON] 빠른 문자열 배열 - Cython (0) | 2018.11.17 |