OpenMV图像处理 最大类间方差法的实现

OpenMV图像处理 最大类间方差法的实现

import sensor, image, time, math, pyb
 
led = pyb.LED(3)                          # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
 
def senser_init():                         # 摄像头传感器初始化函数
    sensor.reset()                         # Initialize the camera sensor.
    sensor.set_pixformat(sensor.GRAYSCALE) # use grayscale.
    sensor.set_framesize(sensor.QQVGA)     # use QQVGA for speed.
    sensor.skip_frames(30)                 # Let new settings take affect.
    sensor.set_auto_gain(True)             # must be turned off for color tracking
    sensor.set_auto_whitebal(True)         # must be turned off for color tracking
    return;
 
def hardware_init():
    led.on()            #亮灯
    time.sleep(100)     #延时150ms
    led.off()           #暗灯
    time.sleep(100)
    return;
 
def Maximum_interclass_variance_method(grayFrame):
    w = 0
    avgValue = 0
    t = 0
    maxVariance = 0
    statistics_data = grayFrame.get_statistics()
    u = statistics_data.mean()
    histogram_data = grayFrame.get_histogram()    #获取灰度直方图
    histogram_bins = histogram_data.bins()   #获取灰度直方图的列表
    for i in range(len(histogram_bins)):
        w += (histogram_bins[i]+0.0000001)
        avgValue  += i * (histogram_bins[i]+0.0000001)
        t = avgValue/w - u
        variance = t * t * w /(1 - w)
        if(variance > maxVariance):
            maxVariance = variance;
            threshold = i;
    return threshold
 
#主函数
hardware_init();
senser_init();
 
while(True):
    img = sensor.snapshot()
    h = Maximum_interclass_variance_method(img);
    #histogram_data = img.get_histogram()    #获取灰度直方图
    #histogram_bins = histogram_data.bins()   #获取灰度直方图的列表
    print(h)
 推荐牛人链接:http://www.lowfet.com/ 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值