• 星瞳AI VISION软件内测!可以离线标注,训练,并生成OpenMV的模型。可以替代edge impulse https://forum.singtown.com/topic/8206
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 这个sensor.snapshot()的理解对吗?



    • 0_1664770605030_761f0744-e7d5-4c46-b50e-feee73263db1-image.png
      我看到for blob in img.find_blobs的时候,查找函数库发现,find_blobs是位于image模块的函数。但是这里却是img。我试图更改img发现程序依旧能正常运行。于是我产生了疑惑,直到看到了sensor.snapshot的函数解释。0_1664770767136_038d20d4-9398-46ee-8f78-5754f419e8a5-image.png
      他说,sensor.snapshot()会返回image,并且把拍摄的数据存储到辅助帧缓冲存储区。而我们用img=sensor.snapshot()。此时程序将img赋予了image的作用,同时在辅助帧缓冲存储区存入了当前照片。所以我们无论怎么改动img,他都具备了image的作用。
      之后img.find_blobs也就是image.find_blobs,对辅助帧缓冲存储区的图像进行处理。



    • 第一点你就说错了,find_blobs不是image模块的函数,而是image模块中的Image类的方法。

      image 是模块,是代码import image里引入的。
      Image 是类名,注意大写,是image模块里的类。
      img是对象,类型是Image。
      find_blobs是Image类的一个方法。所以可以img.find_blobs这样调用。

      另外有一个不常见的使用办法,Image.find_blobs(img, xxx) 等效于 img.find_blobs(xxx),一般不会这样用。