我用的openmv4 H7 ,官网介绍有1M的ram,我用VGA灰度方式读图片,然后在图片里寻找圆,会报内存溢出。
计算一下VGA是640*480,灰度一个字节,大概是300K,远远小于1M。手册上介绍说只有100K的缓冲区,有一个sensor.alloc_extra_fb(width, he ight, pixformat)函数重新分配缓冲区。这一个怎么用?
import sensor, image, time
rect = (0, 0, 340, 240)
sensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.VGA) # Set frame size to QVGA (320x240)
sensor.alloc_extra_fb(640, 480, sensor.GRAYSCALE)
#sensor.set_windowing(rect)
sensor.skip_frames(time = 2000) # Wait for settings take effect.
while(True):
img = sensor.snapshot() # Take a picture and return the image.
# to the IDE. The FPS should increase once disconnected.
for c in img.find_circles(roi=rect, x_stride=2, y_stride=1,threshold = 3800, x_margin = 10,
y_margin = 10, r_margin = 10,r_min = 110, r_max = 120, r_step = 2):
img.draw_circle(c.x(), c.y(), c.r(), color = 255)