Opencv+Python PCB 판 그림 인식 절차

퀘 스 트 요구:
템 플 릿 일치 알고리즘 기반 PCB 판 모델 인식
사용 도구:
Python3、OpenCV
템 플 릿 매 칭 알고리즘 을 사용 하면 템 플 릿 매 칭 은 가장 원시 적 이 고 기본 적 인 모델 인식 방법 으로 특정한 대상 물의 도안 이 이미지 의 어디 에 있 는 지 연구 한 다음 에 대상 물 을 식별 하고 템 플 릿 매 칭 은 자신의 한계점 을 가진다.주로 평 행 이동 만 할 수 있다.즉,원래 이미지 의 매 칭 목 표 는 회전 이나 크기 변화 가 발생 하지 않 는 다.
PCB 와 대응 하 는 템 플 릿 을 미리 준비 하 십시오:

하위 모드:

기본 절 차 는 다음 과 같다.
1.전체 이미지 영역 에서 고정자 이미지 와 일치 하 는 작은 블록 영역 을 발견 합 니 다.
2.템 플 릿 이미지 선택 T(주어진 하위 이미지)
3.검 측 할 이미지 가 필요 합 니 다.원본 이미지 S
4.작업 방법:검 측 이미지 에 있어 왼쪽 에서 오른쪽으로,위 에서 아래로 템 플 릿 이미지 와 중첩,하위 이미지 의 일치 도 를 계산 하고 일치 정도 가 클 수록 이들 이 똑 같은 가능성 이 크다.
OpenCV 는 6 가지 템 플 릿 일치 알고리즘 을 제공 합 니 다.
제곱 차 정합 법 CVTM_SQDIFF;
정규 화 제곱 차 정합 법 CVTM_SQDIFF_NORMED;
관련 정합 법 CVTM_CCORR;
정규 화 관련 매 칭 법 CVTM_CCORR_NORMED;
상관 계수 정합 법 CVTM_CCOEFF;
정규 화 상관 계수 매 칭 법 CVTM_CCOEFF_NORMED;
뒤에 실험 을 통 해 우 리 는 주로 상기 6 가지 중에서 귀 일화 상관 수 정합 법 CV 를 선택 하 였 다TM_CCOEFF_NORMED,기본 원리 공식 은:
 코드 부분 전시:

import cv2
import numpy as np
from matplotlib import pyplot as plt

#      
img = cv2.imread('img8.bmp', 0)
#      
template1=cv2.imread('moban1.bmp', 0)
template2=......
#      
template=[template1,template2,template3,template4]
#     :           
res1=cv2.matchTemplate(img, template1, cv2.TM_CCOEFF_NORMED)
res2=cv2.matchTemplate(......)
#      
min_val1, max_val1, min_loc1, max_loc1 =cv2.minMaxLoc(res1)
min_val2, ......

#      (max_val),   1,      
max_val=[1-max_val1,1-max_val2,1-max_val3,1-max_val4]
j=max_val.index(min(max_val))

#                      
h, w = template[j].shape[:2]  #            rows->h, cols->w
pes=cv2.matchTemplate(img, template[j], cv2.TM_CCOEFF_NORMED) #    
in_val, ax_val, in_loc, ax_loc =cv2.minMaxLoc(pes)

#             
left_top = ax_loc  #    
right_bottom = (left_top[0] + w, left_top[1] + h)  #    
cv2.rectangle(img, left_top, right_bottom, 255, 2) #       
#      
plt.subplot(121), plt.imshow(template[j], cmap='gray')
plt.title('pcb type'),plt.xticks([]), plt.yticks([])
#      
plt.subplot(122), plt.imshow(img, cmap='gray')
plt.title('img'), plt.xticks([]), plt.yticks([])
plt.show()
실험 결과:

전체 코드 와 사진 소재 가 필요 한 경우 블 로 거들 과 연락 할 수 있 는 댓 글 을 남 겨 주세요.
이상 은 Opencv+Python 이 PCB 판 그림 을 식별 하 는 절차 에 대한 상세 한 내용 입 니 다.Opencv+Python 이 PCB 판 을 식별 하 는 데 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기