openmv自然光下寻找激光点

openmv自然光或强光下寻找激光点


本篇主要讲述较强光照条件下如何利用openmv完美的寻找激光点,而不是在较黑的条件下。大家玩过激光的都会有这样的体会,如果在白天玩,你会发现激光点并不明显,很弱。这时候如果你想要用openmv找到激光点会一脸懵逼,openmv根本看不出来激光点在哪,连自己都很难分辨出激光点的位置,这该怎么找?二值化?可是激光点和背景都快分辨不出来了,二值化寻找会稳定?可能单张图片能选择一张比较好的阈值,但是连续的视频怕是让人。。。

openmv自然光下寻找激光点_第1张图片
完全不知道激光点怎么分出来。

但是大家也在黑暗条件下玩过激光,你会发现它是如此的清晰,使用二值化根本不会出现任何问题。我就尝试人为的让图片变的暗一些,然后红色就会变的明显点,如何改变图片的亮度呢?你当然可以从图片本身进行骚操作,但是相机是可以调曝光度的啊!!!,我直接从曝光度调节不就行了!!!
emmmm?仿佛发现了突破点,然后博主尝试后发现效果还不错。
效果图是这样的:
openmv自然光下寻找激光点_第2张图片
这个效果对于识别完全没有什么问题了。
代码是这样的:

sensor.set_auto_gain(False)
sensor.skip_frames(20) # Let new settings take affect.
sensor.set_auto_exposure(False, 1400)
sensor.set_auto_whitebal(False) # turn this off.

sensor.set_auto_exposure(False, 1400)可以改变openmv的曝光度

二值化找激光点

def color_blob(threshold):
    blobs = img.find_blobs([threshold])
    if len(blobs) == 1:
        # Draw a rect around the blob.
        b = blobs[0]
        img.draw_rectangle(b[0:4]) # rect
        cx = b[5]
        cy = b[6]
        img.draw_cross(b[5], b[6]) # cx, cy
        return cx, cy
    return 160, 120

只是最简单的openmv寻找轮廓,本质也是用到了二值化,自己可以添加各种筛选条件,然后稳定的找到激光点,关键在于调低曝光度让激光点变的明显。

如果觉得对你有用,希望你能点个赞。欢迎大家在下面评论,一起交流技术,有什么不对的地方,请指出来?,谢谢。

你可能感兴趣的:(openmv,寻找激光点)