用于检测LED闪光的Python库

时间:2017-04-10 15:25:43

标签: python computer-vision

是否有python库或API可以使用相机检测已知位置的LED灯?灯光会有不同的颜色。

我有兴趣为PCB进行自动化生产测试。我的电路板有许多LED,当某些功能正常工作时,测试命令会使电路板亮起。人们可能会错过众多灯光中的一个。我指定python是因为它是我熟悉的唯一高级语言。我的大部分嵌入式工作都在C语言中,而C在更高级别上工作是很棘手的。

2 个答案:

答案 0 :(得分:1)

很有可能解决这个问题。正如@John Percival Hackworth所说,opencv是解决这个问题的不错选择。我可以给你一些关于如何去做的指示。

  • 使用LED拍摄电路板,因为您知道LED的颜色,使用这些知识来过滤颜色。我为此提供了一段代码片段。
  • 过滤颜色后,您可以使用houghcircles / blobs来定位LED
  • blob的存在意味着LED已打开。然后,您可以根据这些知识做出决策。

Opencv有python绑定,所以你可以用python编程。

要进行颜色过滤的代码段。

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更改为不同的值,具体取决于您要过滤的颜色。

祝你好运:)

答案 1 :(得分:0)

OpenCV是一种可能的选择,可以让您在以后需要时使用另一种语言。