RUI_Worker 发表于 2021-3-19 15:58:00

k210用maixpy实现二维码与颜色同时识别

## k210用maixpy实现二维码与颜色同时识别



## 代码如下

```python
import sensor
import image
import lcd
import time

#设置clock对象
clock = time.clock()


#初始化LCD显示屏
lcd.init()


#初始化摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1)
sensor.set_hmirror(1)
sensor.run(1)
sensor.skip_frames(10)
mylist =
while True:
    clock.tick()
    #寻找二维码,并获取二维码信息
    img_QRCode = sensor.snapshot()
    QRCode = img_QRCode.find_qrcodes()
    img = sensor.snapshot()
    #设置识别颜色的区域
    img = img.draw_rectangle(,image.lab_to_rgb(mylist),2,0)
   
    #创建直方图对象
    color = img.get_histogram(roi=)
   
    #计算直方图频道的CDF
    mylist=color.get_percentile(0.5).l_value()
    mylist=color.get_percentile(0.5).a_value()
    mylist=color.get_percentile(0.5).b_value()
   
    #输出颜色的三个通道值
    txts = (str((str((str((mylist)))) + str(","))) + str((str((str((str((mylist)))) + str(","))) + str((str((mylist)))))))
    img = img.draw_string(,,txts,image.lab_to_rgb(mylist),3,mono_space=0)
    img = img.draw_rectangle(,image.lab_to_rgb(mylist),1,1)
    #输出所识别到的二维码信息
    if len(QRCode) > 0:
      img.draw_string(10,30, QRCode.payload(), color=(0,128,0), scale=2)
    lcd.display(img)
```
## 问题
### 一开始写完代码,运行的时候就报错了

![](data/attachment/album/202103/19/155614jdfmz20dpzsv2pkd.png)

抛出内存不足的错误,这时我们可以用
```
import KPU
KPU.memtest()
```
来查看gc和sys的内存大小

![](data/attachment/album/202103/19/155626iynzutvymtvl1kzv.png)

此时sys的内存只有992k,所以会抛出内存不足
可以用
```
from Maix import utils
import machine

print(utils.gc_heap_size())

utils.gc_heap_size(838860)
machine.reset()
```
将gc中的一些内存转移到sys中,此时sys内存为

![](data/attachment/album/202103/19/155633a91mqo5s1dt01b51.png)

大概的测试了一下,1200kb为最小值≈1.2mb,如果少于这个值就会抛出内存不足的错误。

最后的运行结果:
![](data/attachment/album/202103/19/155640gx55wwqz08g87zzh.jpg)

米老鼠m 发表于 2021-3-19 16:19:10

RUI_Worker 发表于 2021-3-19 15:58
# k210用maixpy实现二维码与颜色同时识别




大佬的解说十分详细,太感谢大佬的解答啦,感恩的心,感谢有您

猪百岁 发表于 2021-3-19 21:34:30

大佬,我顶!{:7_216:}
页: [1]
查看完整版本: k210用maixpy实现二维码与颜色同时识别