Python 大仙:那个灯妖,那里逃?有没有健康码?非点证明?看仙器——泡泡圈, 1...2...3...4...

这篇博客介绍了如何使用Python和OpenCV进行GUI设计,特别是针对LED灯检测的应用。作者详细讲解了如何创建多个窗口,实现图像显示、阈值控制和光斑检测,并提供了键盘交互功能,包括图像切换、阈值调整和检测区域选择等操作。
摘要由CSDN通过智能技术生成

📳0. 劫图之后

😲 :大仙,大仙,劫图之后没什么用处啊,如何把光斑摘下来?
🐍 :私,私,私 ,Threshhold 啦!
😄 :大仙显灵啦,小的们,快给我抓这个什么猴?
😎 :是!大哥,打开 PyCharm,接上 OpenCV,然后…呢,大哥?
😶 :笨,我来,当然是设计窗口了,用码字调试,天都黑了。


1. GUI 设计

OpenCV 有很简单的 GUI 设计,叫 HighGUI,如果要增加设计量,你要重新用 OpenCV 的源码, 选 Python 的 Qt 项来 Build。

🤫:那太费时间了,估计他们之间可能有什么牙齿印,要不 OpenCV 这么长时间都没有直接用 Qt ,非要我们去 compile。八卦完了,我们继续。

windows

🖼🖼🖼: 三个窗口

  1. Controls 窗:调节 Threshold 阈(读遇,俺没写过。)值 的高低。结果显示在右边那个 Blob detection 窗 。

  2. Blob Detection 窗:找泡泡的地方。
    bubble

  3. Map LED Locations 窗:显示 LED 的位置。

✒️2. 打🐴:测老鼠。

🔌 开头

import cv2 as cv
from imutils import contours
from skimage import measure
import numpy as np
import glob
import imutils
import random as rng

# random seed
rng.seed(12345)

📚读画

# =====================================
# main
# =====================================
# BGR color
red = (0, 0, 255)
green = (0, 255, 0)

# file io
sample1 = ".\\image\\*.jpg"
jpg_list = glob.glob(sample1)

# map image
map_file = jpg_list[0]
map_img = cv.imread(map_file)
update_map = True

# images for detection
del jpg_list[0]
count = 0
final_view = map_img.copy()
maxLeds = len(jpg_list)
foundLed = []

main 以下: 增加固定图,主图是 0 号,读取后,在图的队列删除。

🌍 Map 窗:定光洞

# =====================================
# Map Window
# =====================================
map_window = "Map LED Locations"
cv.namedWindow(map_window)
cv.moveWindow(map_window, 156, 210)

# show map image
cv.imshow(map_window, map_img)

# mouse setting: scan region
drawing = False
ix, iy = -1, -1
alpha = 0.5
isSetScanArea = False
point = (0, 0)
scanArea = []  # point array
cv.setMouseCallback(map_window, mouse_drawing)

增加老鼠的参数,用来选择检测区域。
main 上面:

# set detection region by mouse
def mouse_drawing(event, x, y, flags, params):
    global scanArea, drawing, ix, iy, alpha, green, isSetScanArea

    overlay = map_img.copy()
    output = map_img.copy()

    if event == cv.EVENT_LBUTT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值