导航

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

    iluw 发布的帖子

    • 如何将图像从RGB颜色空间转换到HSV或HSI颜色空间?

      想要单独对图像在HSV颜色空间下的色相分量或饱和度分量进行分析处理,应当调用什么函数?(对象是整幅图范围,不是单个像素点的hsv分量)

      发布在 OpenMV Cam
      I
      iluw
    • 如何对一幅图像进行RGB通道拆分?

      想要获得3张分别只有R\G\B通道值,另外两通道值为0的单通道图像。

      发布在 OpenMV Cam
      I
      iluw
    • RE: 关闭白平衡和自动增益后,改变光源的亮度却还是会被自动校正平衡。如何彻底关闭白平衡和自动增益?

      已经解决了,非常感谢

      发布在 OpenMV Cam
      I
      iluw
    • RE: 关闭白平衡和自动增益后,改变光源的亮度却还是会被自动校正平衡。如何彻底关闭白平衡和自动增益?

      有无处理过这个问题的大佬解答以下🙏

      发布在 OpenMV Cam
      I
      iluw
    • 关闭白平衡和自动增益后,改变光源的亮度却还是会被自动校正平衡。如何彻底关闭白平衡和自动增益?

      简单的成像代码如下:

      import sensor, image, time
      
      sensor.reset()                      # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.XGA)   # Set frame size to QVGA (320x240)
      sensor.set_auto_gain(False)                     #关闭相机自动增益
      sensor.set_auto_whitebal(False)                 #关闭相机自动白平衡
      sensor.skip_frames(time = 2000)     # Wait for settings take effect.
      clock = time.clock()                # Create a clock object to track the FPS.
      
      while(True):
          clock.tick()                    # Update the FPS clock.
          img = sensor.snapshot()         # Take a picture and return the image.
          img.lens_corr(1.3)
          print(clock.fps())              # Note: OpenMV Cam runs about half as fast when connected
                                          # to the IDE. The FPS should increase once disconnected.
      
      
      发布在 OpenMV Cam
      I
      iluw
    • image.binary()如何设定mask参数?
      image.binary(thresholds[, invert=False[, zero=False[, mask=None[, to_bitmap=False[, copy=False]]]]])
      

      以上函数中的mask是如何设定的?mask=?

      发布在 OpenMV Cam
      I
      iluw
    • RE: 有什么方法去设定二维倾斜的矩形区域为感兴趣区域

      @kidswong999
      image.binary()需要以颜色阈值范围作为判断标准,我的“最终检测色块”的颜色变化范围较大,可能和标准颜色区的某个标准色块颜色相近,这样可能会出现误把“最终检测色块”也包含进某个标准色块对应生成的mask里的情况,成为干扰因素。我想给每个标准色块和二维码设定ROI的初衷是尽量避免干扰因素,提高精确度。

      发布在 OpenMV Cam
      I
      iluw
    • RE: 有什么方法去设定二维倾斜的矩形区域为感兴趣区域

      0_1695796857422_cbab5db2-9e39-452f-b867-bfdcca145836-image.png
      我的思路是第一步:利用find_blobs()去识别右侧蓝色圆点,然后利用blob.roundness()圆点筛选,再利用blob.enclosing_circle()去返回其中心坐标,于是得到中心点坐标,通过计算也可以得到这整个图像的倾斜角度;第二步:根据得到的坐标去分别给左侧标准颜色区与中间二维码区设定一个ROI。但是实际情况检测对象可能是倾斜一定角度的,左侧标准颜色区因面积限制排列紧凑,普通(x,y,w,h)可能导致某个ROI错误扩展到相邻的色块上,导致我获取的区域像素颜色信息出现干扰。第三步:根据标准颜色区的颜色信息作为“最终检测色块区”的环境偏差修正参数,从而获取最终检测色块区的颜色信息。
      所以我想,如果可以自己根据算出来的每个色块的四角坐标(与定位块的相对位置是固定的)与倾斜角度去设定一个与对象倾斜角度相同的ROI就好了。
      或者已知倾斜角后,把图像反向水平旋转矫正后再去设定ROI就可以避免倾斜ROI扩展到其他色块上了。

      发布在 OpenMV Cam
      I
      iluw
    • RE: 有什么方法去设定二维倾斜的矩形区域为感兴趣区域

      感谢指点,但是上面的红色块目标只是举例, 我想设定的感兴趣区域并不是以已知对象位置为前提,而是以我想设定的感兴趣区域的四角坐标与倾斜角度为已知。(已知信息是由大目标上的定位块计算出的,根据相对坐标差与倾斜角去定位大目标上的小目标的大概位置)也就是想要实现的不是“识别”、而是“设定”,设定一个倾斜的感兴趣区域。

      发布在 OpenMV Cam
      I
      iluw
    • 有什么方法去设定二维倾斜的矩形区域为感兴趣区域

      0_1695208052174_75d14d7a-3e13-4109-864b-e344b3a38625-image.png
      举例:目标是红色块,但是其倾斜一定角度。我想设定感兴趣区域为黑色矩形框范围(图像本身是无黑色矩形框的,这里是为展示清晰),黑色矩形框四角坐标与长、宽已知。
      我能想到的解决方法有两个:1.算出目标的旋转角度,然后将图像整个旋转一定角度后,设定(x,y,w,h);2.有没有什么可以直接匹配出倾斜矩形框,然后调用设定为感兴趣区域的。但是roi=(x,y,w,h)嘛,不明白倾斜状态下如何设定w和h。
      请教各位大佬指点指点。

      发布在 OpenMV Cam
      I
      iluw
    • 模板匹配的find_template()函数多次调用会报错问题?
      import time, sensor, image
      from image import SEARCH_EX, SEARCH_DS
      #从imgae模块引入SEARCH_EX和SEARCH_DS。使用from import仅仅引入SEARCH_EX,
      #SEARCH_DS两个需要的部分,而不把image模块全部引入。
      
      sensor.reset()                                              #相机初始化
      sensor.set_contrast(1)                                      #设置相机对比度
      sensor.set_framesize(sensor.FHD)                         #设置相机分辨率
      #sensor.set_windowing(((640-80)//2, (480-60)//2, 80, 60))   #设置视窗分辨率
      sensor.set_pixformat(sensor.GRAYSCALE)                      #设置灰度模式
      sensor.set_auto_gain(False)                                 #关闭相机自动增益
      sensor.set_auto_whitebal(False)                             #关闭相机自动白平衡
      sensor.set_auto_exposure(False, \
          exposure_us = 80000)                                    #设置曝光时间
      
      # Load template.
      # Template should be a small (eg. 32x32 pixels) grayscale image.
      template = image.Image("/L.pgm")                            #加载模板图片
      
      while (True):
          img = sensor.snapshot()                                 #相机采图
          img.lens_corr(1.8)                                      #相机畸变矫正
          img.draw_rectangle((0,540,960,540), color=(0,255,0))
      
          # find_template(template, threshold, [roi, step, search])
          r1 = img.find_template(template, 0.70, roi=(0,540,960,540), step=4, search=SEARCH_EX)
          if r1:
              img.draw_rectangle(r1,color=(255,0,0))
              print(r1[0]+r1[2]/2, r1[1]+r1[3]/2)
          r2 = img.find_template(template, 0.70, roi=(960,540,960.540), step=4, search=SEARCH_EX)
          if r2:
              img.draw_rectangle(r2,color=(255,0,0))
              print(r2[0]+r2[2]/2, r2[1]+r2[3]/2)
          r3 = img.find_template(template, 0.70, roi=(960,0,960.540), step=4, search=SEARCH_EX)
          if r3:
              img.draw_rectangle(r3)
              print(r3[0]+r3[2]/2, r3[1]+r3[3]/2)
      

      运行会出现报错问题,定位在了第二次调用find_template()函数位置。尝试了三个find_template()单独调用运行,单独运行第一个正常,第二、三个会报错。
      0_1693903150407_报错.png
      请问有没有同样问题已经解决的分享一下解决办法。

      发布在 OpenMV Cam
      I
      iluw
    • 报错:TypeError: NoneType' object isn't callable

      目的:设定右半边图像为感兴趣区域,进行颜色识别,判断是否存在与阈值匹配的像素点
      问题:采图范围无目标时无事发生,一旦采图范围内进入了与阈值匹配的物体,IDE就会立马报错,如图0_1685613110711_微信截图_20230601175142.png

      import sensor, image, time, network, usocket, sys, math, pyb
      
      C_thresholds =[(12, 41, 44, 23, 34, -11)]   #C线识别的阈值
      #T_thresholds =[(16, 54, -10, 28, -29, 2)]   #T线识别的阈值
      
      
      sensor.reset()                          #相机初始化
      #sensor.set_contrast(1)                 #设置相机图像对比度(-3,+3)
      #sensor.set_brightness(1)               #设置相机图像亮度(-3,+3)
      #sensor.set_saturation(1)               #设置相机图像饱和度(-3,+3)
      #sensor.set_gainceiling(16)             #设置相机图像增益上限(2、4、8、16、32、64、128)
      sensor.set_pixformat(sensor.RGB565)     #设置彩色模式
      sensor.set_framesize(sensor.VGA)         #设置相机分辨率
      sensor.skip_frames(time = 2000)         #延时2s
      sensor.set_auto_gain(False)             #关闭相机自动增益
      sensor.set_auto_whitebal(False)         #关闭相机自动白平衡
      
      right_roi= [320,0,320,480]
      left_roi = [0,0,320,480]
      
      while(True):
          img = sensor.snapshot()
          for blob in img.find_blobs(C_thresholds, roi=right_roi, x_stride=2, y_stride=1,
           invert=False, area_threshold=4, pixels_threshold=4, merge=True, margin=1, threshold_cb=None, merge_cb=None):
              if blob.pixels() > 10:
                  print("试纸检测成功!")
                  img.draw_edges(blob.min_corners(), color=(255,0,0))
                  img.draw_line(blob.major_axis_line(), color=(0,255,0))
                  img.draw_line(blob.minor_axis_line(), color=(0,0,255))
              #img.draw_rectangle(blob.rect())
              #img.draw_cross(blob.cx(), blob.cy())
              #img.draw_keypoints([(blob.cx(), blob.cy(), int(math.degrees(blob.rotation())))], size=20)
              else:
                  print("未检测到试纸!")
      
      发布在 OpenMV Cam
      I
      iluw
    • Color-Tracking->multi_color_blob_tracking多颜色跟踪中能否去掉打印帧率和时钟?

      Color-Tracking->multi_color_blob_tracking多颜色跟踪中的clock = time.clock()、clock.tick()都只是为了实现函数print(clock.fps())吗?如果我只是拍一张照片进行色块查找,是不是就不用打印帧率,也就不用写上面这些了?
      代码导航:https://book.openmv.cc/example/10-Color-Tracking/multi-color-blob-tracking.html

      发布在 OpenMV Cam
      I
      iluw