2017-04-10 1 views
-2

카메라를 사용하여 알려진 위치에서 LED 표시등을 감지 할 수있는 Python 라이브러리 또는 API가 있습니까? 조명은 다른 색상이 될 것입니다.LED 플래시를 감지하는 Python 라이브러리

PCB의 자동화 된 생산 테스트에 관심이 있습니다. 내 보드에는 많은 LED가 있으며 테스트 명령을 사용하면 일부 기능이 올바르게 작동하면 보드가 LED를 켜게됩니다. 사람들은 많은 불빛 중 하나를 놓칠 수 있습니다. 파이썬은 내가 익숙한 유일한 고급 언어이기 때문에 지정한다. 내 임베디드 작업의 대부분은 C에 있으며 C는 더 높은 수준에서 작업하기가 까다 롭습니다.

답변

0

OpenCV은 나중에 필요할 경우 다른 언어로 전환 할 수있는 가능한 선택입니다.

0

이 문제를 해결하는 것이 가능합니다. @ John Percival Hackworth가 말했듯이, opencv는 이것을 해결하기위한 좋은 선택입니다. 나는 그것에 대해 갈 방법에 대한 조언을 해 줄 수 있습니다.

  • LED의 색상을 알고 있으므로 색상을 필터링하기 위해 해당 지식을 사용하여 보드의 사진을 찍으십시오. 내가 어떤 코드 스 니펫을 제공했는지.
  • 색상을 필터링 한 후, houghcircles/blob을 사용하여 LED를 찾을 수 있습니다.
  • BLOB의 존재는 LED가 켜져 있음을 의미합니다. 그런 다음이 지식을 기반으로 의사 결정을 내릴 수 있습니다.

OpenCv에는 파이썬 바인딩이 있으므로 파이썬으로 이것을 프로그래밍 할 수 있습니다.

스 니핏은 컬러 필터링을 수행합니다. 이 경우

import cv2 as cv2 
import numpy as np 

fn = 'image_or_videoframe' 
# OpenCV reads image with BGR format 
img = cv2.imread(fn) 
# Convert to HSV format 
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 

# Choose the values based on the color on the point/mark 
lower_red = np.array([0, 50, 50]) 
upper_red = np.array([10, 255, 255]) 
mask = cv2.inRange(img_hsv, lower_red, upper_red) 

# Bitwise-AND mask and original image 
masked_red = cv2.bitwise_and(img, img, mask=mask) 

는 적색 이미지에 여과하고 masked_red 이미지 만 적색 화소를 포함한다. lower_redupper_red을 필터링 할 색에 따라 다른 값으로 변경할 수 있습니다.

행운을 빌어 요.