學習視頻:https://singtown.com/learn/50017/
主要識別:條形碼、二維碼、矩形碼
條形碼:
可以用這個網站生成條形碼:http://barcode.tec-it.com/zh/Code128?data=OpenMV
代碼如下:
import sensor, image, time, math sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.VGA) # High Res! sensor.set_windowing((640, 80)) # V Res of 80 == less work (40 for 2X the speed). sensor.skip_frames(30) sensor.set_auto_gain(False) # must turn this off to prevent image washout... sensor.set_auto_whitebal(False) # must turn this off to prevent image washout... clock = time.clock() # Barcode detection can run at the full 640x480 resolution of your OpenMV Cam's # OV7725 camera module. Barcode detection will also work in RGB565 mode but at # a lower resolution. That said, barcode detection requires a higher resolution # to work well so it should always be run at 640x480 in grayscale... def barcode_name(code): if(code.type() == image.EAN2): return "EAN2" if(code.type() == image.EAN5): return "EAN5" if(code.type() == image.EAN8): return "EAN8" if(code.type() == image.UPCE): return "UPCE" if(code.type() == image.ISBN10): return "ISBN10" if(code.type() == image.UPCA): return "UPCA" if(code.type() == image.EAN13): return "EAN13" if(code.type() == image.ISBN13): return "ISBN13" if(code.type() == image.I25): return "I25" if(code.type() == image.DATABAR): return "DATABAR" if(code.type() == image.DATABAR_EXP): return "DATABAR_EXP" if(code.type() == image.CODABAR): return "CODABAR" if(code.type() == image.CODE39): return "CODE39" if(code.type() == image.PDF417): return "PDF417" if(code.type() == image.CODE93): return "CODE93" if(code.type() == image.CODE128): return "CODE128" while(True): clock.tick() img = sensor.snapshot() codes = img.find_barcodes() for code in codes: img.draw_rectangle(code.rect()) print_args = (barcode_name(code), code.payload(), (180 * code.rotation()) / math.pi, code.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) if not codes: print("FPS %f" % clock.fps())
運行結果:條形碼編號與串口顯示的一致,都為6902083907150
二維碼:
可以用草料二維碼生成你想要的內容:http://cli.im/
效果如下:
代碼如下:
# 二維碼例程 # # 這個例子展示了OpenMV Cam使用鏡頭校正來檢測QR碼的功能(請參閱qrcodes_with_lens_corr.py腳本以獲得更高的性能)。 import sensor, image, time sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) sensor.set_auto_gain(False) # 必須關閉此功能,以防止圖像沖洗… clock = time.clock() while(True): clock.tick() img = sensor.snapshot() img.lens_corr(1.8) # 1.8的強度參數對於2.8mm鏡頭來說是不錯的。 for code in img.find_qrcodes(): img.draw_rectangle(code.rect(), color = (255, 0, 0)) print(code) #print(clock.fps())
運行結果:二維碼信息與串口顯示的一致,都為oldxi
注意:其他信息可以參考函數的具體用法
正是步行者,一步步登峰!