导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. dcqu
    D
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    dcqu

    @dcqu

    0
    声望
    25
    楼层
    3049
    资料浏览
    0
    粉丝
    1
    关注
    注册时间 最后登录

    dcqu 关注

    dcqu 发布的帖子

    • RE: OPENMV的颜色通道,默认为LAB通道,如何应用RGB进行检测

      @kidswong999 这个print(image.lab_to_rgb((22, -26, 23))),能够详细说说它的构造函数吗?需要传入什么参数,输出什么值?拜托了🙏🏻

      发布在 OpenMV Cam
      D
      dcqu
    • RE: OPENMV的颜色通道,默认为LAB通道,如何应用RGB进行检测

      print(image.lab_to_rgb((22, -26, 23))),里面传入的是什么参数?LAB的均值、LQ、UQ还是StDev值

      发布在 OpenMV Cam
      D
      dcqu
    • RE: OPENMV的颜色通道,默认为LAB通道,如何应用RGB进行检测

      @kidswong999 麻烦帮忙看看,怎么使用RGB颜色通道进行色彩识别

      发布在 OpenMV Cam
      D
      dcqu
    • OPENMV的颜色通道,默认为LAB通道,如何应用RGB进行检测

      Hello World Example

      Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!

      import sensor, image, time, pyb

      sensor.reset() # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)

      sensor.set_auto_gain(False)

      clock = time.clock() # Create a clock object to track the FPS.

      red_led = pyb.LED(2)
      red_led.off()

      #定义引脚,P1为out口,输出检测结果;P5为in口,接收拍照信号
      p_1 = pyb.Pin("P1", pyb.Pin.OUT_PP)
      p_1.low()
      p_5 = pyb.Pin('P5', pyb.Pin.OUT_PP, pyb.Pin.PULL_DOWN)
      p_5.low()

      def find_max(blobs):
      max_size=0
      for blob in blobs:
      if blob[2]*blob[3] > max_size:
      max_blob=blob

              max_size = blob.pixels()   #获取到目标颜色的像素个数
      return max_blob
      

      flag = 0 #传感器状态标记位,0表示未触发,1表示已触发;
      #当p_5.value()>0,表示传感器开始触发,相机拍照;
      #当p_5.value()<1,表示传感器已经触发过,将flag=1,防止重复拍照

      i=0 #缺陷计数

      sensor.set_auto_whitebal(False,rgb_gain_db = (0,0,0)) #可调试参数,白平衡,只在改变曝光后使用,只用做一次就好
      sensor.set_auto_exposure(False,600) #可调试参数,设置相机曝光

      good_1=(30,70,-20,10,-40,-10)## good处想应用RGB颜色通道,应该如何调用?🤔
      #可调试参数
      #正常颜色的LAB通道的区间阈值
      #L通道为亮度通道,A通道和B通道为检测参数,表示正常颜色的区间阈值
      #颜色阈值设定的范围越大,检测越松
      #要求:OK片不误检,不报警

      #设置检测区域ROI,在初次调试时注释掉,选择合适的ROI
      sensor.set_windowing((18,19,211,204))

      while(True):
      clock.tick()

      #print(sensor.get_rgb_gain_db())    #可调试参数,只在调试模式下,白平衡参数获取,只使用一次
      
      if p_5.value()>0 and flag==0:      #可调试参数,检测时使用,表示外触发模式
      #if 1>0:                             #可调试参数,测试的时候,在上句if前加 # ,当前if的 # 去掉,表示内触发模式
                                          #内触发/外触发模式,不能同时启用;检测时只能使用外触发
          flag = 1
      
      
          area_1 = 0
      
          img = sensor.snapshot()         # 获取当前相机拍摄的一张图像img
      
          #time.sleep_ms(1000)             #可调试参数,测试的时候用,检测时注释掉
      
          tongdao = img.get_statistics()
      
          blobs_1=img.find_blobs([good_1], merge=True)
      
          if blobs_1:                     #查找正常颜色
              max_blob_1 = find_max(blobs_1)
              img.draw_rectangle(max_blob_1[0:4]) # rect
              img.draw_cross(max_blob_1[5], max_blob_1[6]) # cx, cy
              area_1 = max_blob_1.pixels()  #获取正常颜色的面积,单位:像素
      
          quexian = 0
      
          if tongdao.l_stdev()>13 or (tongdao.l_stdev()>12 and tongdao.b_stdev()>8) : #可调试参数,对于特殊情况的漏检,增加的检测参数
              quexian = 0          #quexian = 1代表NG, =0 代表OK
      
          if  area_1<20000  or quexian == 1:  #如果正常颜色的面积小于设定值,如10000,剔除
                              #面积设定越大越严,越小越松
              red_led.on()    #写入的是red红灯,实际是控制的状态灯绿灯
              p_1.high()     #指示灯-绿灯亮,输出高电平
      
              i=i+1
              print(i,"****NG-area:****",area_1)
                              #缺陷计数,并将缺陷面积显示出来,方便调试
      
      
              print("a-lq:",tongdao.a_lq(),"a-uq:",tongdao.a_uq(),"a-min:",tongdao.a_min(),"a-max:",tongdao.a_max(),"a-StDev:",tongdao.a_stdev())
              print("b-lq:",tongdao.b_lq(),"b-uq:",tongdao.b_uq(),"b-min:",tongdao.a_min(),"b-max:",tongdao.b_max(),"b-StDev:",tongdao.b_stdev())
      
              time.sleep_ms(50)  #给出50ms的高电平信号
      
              red_led.off()   #拉低电平,恢复默认状态,防止连续剔除
              p_1.low()
      
          else:
      
              red_led.off()
              p_1.low()
      
      if p_5.value()<1:
          flag = 0
      发布在 OpenMV Cam
      D
      dcqu
    • 怎么用函数调节图像亮度

      现场光源亮度过大,相机曝光设置最小只能为100us,小于该值反而过曝,亮度和几千的曝光类似。如何在不改变现场光源亮度、相机曝光的条件下,仅仅通过参数设置,修改图像亮度。
      有没有类似 exposure.adjust_gamma(image, 2) 的函数,通过修改亮度系数,修改亮度

      发布在 OpenMV Cam
      D
      dcqu
    • RE: 如何将图像分割成,2X2,3X3之类的九宫格,然后计算小块内的颜色/对比度?

      @kidswong999

      发布在 OpenMV Cam
      D
      dcqu
    • RE: 如何将图像分割成,2X2,3X3之类的九宫格,然后计算小块内的颜色/对比度?

      img.scale()这个函数怎么构造?如何设置里面的ROI,仅仅复制原图,而不修改原图内容

      发布在 OpenMV Cam
      D
      dcqu
    • 如何将图像分割成,2X2,3X3之类的九宫格,然后计算小块内的颜色/对比度?

      0_1636441314690_6784fa45-2ced-49e7-be20-6249b0df15c3-image.png

      如图所示,请教一下,谁能提供一下思路

      发布在 OpenMV Cam
      D
      dcqu
    • 如何对ROI进行分块检测

      0_1634196613579_5d735faa-20fa-48d7-98bc-2a673b1901bb-image.png
      想将ROI分成均匀的几部分,比如3X3,4X4,分别计算每部分的LAB通道下的均值、梯度差、最大值、最小值等参数,如何实现,有什么代码可以参考

      发布在 OpenMV Cam
      D
      dcqu