当前位置:   article > 正文

OpenMv颜色识别_openmv识别最大色块

openmv识别最大色块

本文旨在分享OpenMv实现数字识别并通过串口打印出来的工程源码。如果大家想将识别的结果传给单片机,即OpenMv与单片机之间的通信,可以参考以下文章:

OpenMV与STM32之间的通信(附源码)_openmv与stm32串口-CSDN博客

 ​​

  1. # LOTS OF Blob Detection
  2. import sensor, image, time
  3. # 如果要保证颜色追踪效果的话, 需要对环境的严格控制
  4. # 晚上光源的冷暖色等,都会对颜色追踪造成很大的影响
  5. # 彩色图片颜色的阈值格式组成, 是由LAB颜色空间的各自最小值与最大值组成
  6. # 点击右侧的颜色空间下拉选择按钮, 默认为RGB Color Space
  7. # 参考右侧的LAB Color Space里面的参数
  8. # (minL, maxL, minA, maxA, minB, maxB)
  9. # 灰度图的阈值格式
  10. # (min, max)
  11. # 红色阈值
  12. pink_threshold =(44, 75, 8, 77, -44, 21)
  13. # 黄色阈值
  14. yellow_threshold = (36, 75, -20, 11, 23, 48)
  15. # 蓝色阈值
  16. blue_threshold = (61, 95, -23, -10, -30, -10)
  17. # 绿色阈值
  18. green_threshold =(50, 60, -48, -30, 15, 38)
  19. # 颜色阈值的设定可以在 工具(Tools) -> 机器视觉(Machine Vision) -> 阈值编辑器(Threshold Editor) 中调试
  20. # 颜色代码是find_blobs返回的blob对象中的一个成分, 用于标识,该色块是由在哪个阈值下选择的
  21. # 颜色1: 红色的颜色代码
  22. pink_color_code = 1 # code = 2^0 = 1
  23. # 颜色2: 绿色的颜色代码
  24. yellow_color_code = 2 # code = 2^1 = 2
  25. # 颜色3蓝的代码
  26. blue_color_code = 4# color_code_3 = 2^2 = 4
  27. # 颜色4绿的代码
  28. green_color_code = 8# color_code_4 = 2^3 = 8
  29. sensor.reset() # 初始化摄像头
  30. sensor.set_pixformat(sensor.RGB565) # 选择像素模式 RGB565.
  31. sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.
  32. sensor.skip_frames(time = 2000) # Let new settings take affect.
  33. sensor.set_auto_whitebal(False) #关闭白平衡。白平衡是默认开启的,在颜色识别中,需要关闭白平衡。
  34. clock = time.clock() # Tracks FPS.
  35. while(True):
  36. clock.tick() # Track elapsed milliseconds between snapshots().
  37. img = sensor.snapshot() # 拍照,返回图像
  38. # 在图像中寻找满足颜色阈值约束(color_threshold, 数组格式), 像素阈值pixel_threshold, 色块面积大小阈值(area_threshold)的色块
  39. blobs = img.find_blobs([pink_threshold, yellow_threshold , blue_threshold , green_threshold], area_threshold=100)
  40. if blobs:
  41. #如果找到了目标颜色
  42. for blob in blobs:
  43. #迭代找到的目标颜色区域
  44. x = blob[0]
  45. y = blob[1] #
  46. width = blob[2] # 色块矩形的宽度
  47. height = blob[3] # 色块矩形的高度
  48. center_x = blob[5] # 色块中心点x值
  49. center_y = blob[6] # 色块中心点y值
  50. color_code = blob[8] # 颜色代码
  51. # 添加颜色说明
  52. if color_code == pink_color_code:
  53. img.draw_string(x, y - 10, "red", color = (0xFF, 0x00, 0x00))
  54. elif color_code == blue_color_code:
  55. img.draw_string(x, y - 10, "blue", color = (0xFF, 0x00, 0x00))
  56. elif color_code == yellow_color_code:
  57. img.draw_string(x, y - 10, "yellow", color = (0xFF, 0x00, 0x00))
  58. elif color_code == green_color_code:
  59. img.draw_string(x, y - 10, "green", color = (0xFF, 0x00, 0x00))
  60. #用矩形标记出目标颜色区域
  61. img.draw_rectangle([x, y, width, height])
  62. #在目标颜色区域的中心画十字形标记
  63. img.draw_cross(center_x, center_y)
  64. print(clock.fps())

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/825744
推荐阅读
相关标签
  

闽ICP备14008679号