d355061946
2020-12-26 00:02 阅读 665
已结题

用手机拍取照片,如何实现对照片中的发光LED进行析别与提取?

300

 

  • 点赞
  • 收藏
  • 复制链接分享

23条回答 默认 最新

  • fly_bear_unknown 无厘头编程 2020-12-27 09:26

    Python 结果:

    from imutils import contours
    from skimage import measure
    import numpy as np
    import imutils
    import cv2 as cv
    
    # read local file
    image = cv.imread('D:\OpenCV\image\led_light.png')
    
    # convert to grayscale
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    blurred = cv.GaussianBlur(gray, (11, 11), 0)
    
    # reveal the brightest regions
    thresh = cv.threshold(blurred, 200, 255, cv.THRESH_BINARY)[1]
    
    # remove small spots
    # perform a series of erosions and dilations to remove
    # any small blobs of noise from the thresholded image
    thresh = cv.erode(thresh, None, iterations=2)
    thresh = cv.dilate(thresh, None, iterations=4)
    
    labels = measure.label(thresh)
    mask = np.zeros(thresh.shape, dtype="uint8")
    
    # loop over the unique components
    for label in np.unique(labels):
    	# if this is the background label, ignore it
    	if label == 0:
    		continue
    	# otherwise, construct the label mask and count the
    	# number of pixels 
    	labelMask = np.zeros(thresh.shape, dtype="uint8")
    	labelMask[labels == label] = 255
    	numPixels = cv.countNonZero(labelMask)
    
    	# if the number of pixels in the component is sufficiently
    	# large, then add it to our mask of "large blobs"
    	if numPixels > 500:
    		mask = cv.add(mask, labelMask)
    
    # find the contours in the mask, then sort them from left to
    # right
    cnts = cv.findContours(mask.copy(), cv.RETR_EXTERNAL,
    	cv.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    cnts = contours.sort_contours(cnts)[0]
    # loop over the contours
    for (i, c) in enumerate(cnts):
    	# draw the bright spot on the image
    	(x, y, w, h) = cv.boundingRect(c)
    	((cX, cY), radius) = cv.minEnclosingCircle(c)
    	cv.circle(image, (int(cX), int(cY)), int(radius),
    		(0, 0, 255), 3)
    	cv.putText(image, "#{}".format(i + 1), (x, y - 15),
    		cv.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)
    
    # show the output image
    #cv.imshow('LED Light', thresh)
    cv.imshow('spot', image)
    cv.waitKey(0)
    

    点赞 4 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-30 02:09

    image convert on Android

    安装成功。

    点赞 4 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-27 09:30

    左下角差点。应该合起来。

    点赞 3 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-10 10:20

    改了改,终于认全了,下次实验3:LED 加速。

    点赞 1 评论 复制链接分享
  • bosaidongmomo bosaidongmomo 2020-12-26 08:33
    点赞 评论 复制链接分享
  • bosaidongmomo bosaidongmomo 2020-12-26 08:35
    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-26 09:35

    OpenCV:图像转灰色调,

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    用 cv2.minMaxLoc 找最亮点。

    (minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)

    画圈

    cv2.circle(image, maxLoc, 5, (255, 0, 0), 2)

    cv2.imshow("灯啊", image)

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-26 09:48

    只是画圈,有点掉价。朋友有没有更好的?

    点赞 评论 复制链接分享
  • zhyxsbl zhyxsbl 2020-12-27 03:01

    手机有扑捉功能的吧,如果没有下个辅助软件

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-27 10:12

    接着,选 Chaquopy,还是 Kivy?好像 Kivy 功能强点 Android + IOs,有哪位比一下意见?

    点赞 评论 复制链接分享
  • weixin_48322799  美丽心情 2020-12-27 12:21

    对照片亮度进行调节,调整到最暗,保存后利用做图软件,删除深色背景。只保留LED亮点。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-29 00:12

    大家不要只说不干呀!如何处理左下角的问题。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-29 00:14

    Kivy 太复杂了,还是先搬上安卓再说了。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-30 02:11

    Chaquopy 还是不错的,起码能跑 python。不过要申请 license。你看开头的 license 警告。

    点赞 评论 复制链接分享
  • CharmlessYi ohazyi 2020-12-30 19:17

    1. 对图像的像素进行遍历,因为亮度较高的区域其rgb像素值较大,因此可以较直接的进行检查

    2. 做语义分割或者目标检测,先检测出对应的目标之类的再进行分类,建议可以查询semantic augumentation或者detection的相关工作

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2020-12-31 15:47

    在录像中测试,对象是RGB LED。这个只能在暗处才有用。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-07 09:58

    第一次 定位测试,每秒一颗 LED。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-07 10:04

    谁有兴趣,一起合作合作,用 OpenCV + Python。还有 AAA 兄怎么不见回复。

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-08 12:28
    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-10 10:10

    在白天的情况下,无法用上面的码,用 blob 认了 5/8。

    点赞 评论 复制链接分享
  • qq_44955537 宁崽崽 2021-01-15 14:23

    ps

     

    点赞 评论 复制链接分享
  • fly_bear_unknown 无厘头编程 2021-01-17 06:53

    刚拿到的 60 颗粒,有点难度!

    点赞 评论 复制链接分享
  • qq_43191474 布莱克ka 2021-02-26 14:07

    O.O,瞪大眼睛看大佬做事,期待结果

    点赞 评论 复制链接分享

相关推荐