@kidswong999 好的 我寄回去测试吧 感谢大大
M
mesi 发布的帖子
-
RE: 有线图传显示无法显示xga画质?
@kidswong999 请教一下大大,现在图片测试程序是可以到缩放到325x240,可以正常显示,但是代入程序后显示还是卡死,如何解决?
测试代码
import sensor, image, time ,tv sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.XGA) sensor.skip_frames(time = 2000) clock = time.clock() tv.init() # 初始化tv tv.channel(8) # 用于无线图传扩展板 while(True): clock.tick() img = sensor.snapshot() img.crop(x_size=325, y_size=240) tv.display(img) print(clock.fps())
代入代码
# Barcode Example # # This example shows off how easy it is to detect bar codes using the # OpenMV Cam M7. Barcode detection does not work on the M4 Camera. import sensor, image, time, math,tv import time from pyb import Pin, Timer # 50kHz pin6 timer2 channel1 #light = Timer(2, freq=50000).channel(1, Timer.PWM, pin=Pin("P6")) #light.pulse_width_percent(10) # adjust light 0~100 import sensor, image, time sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.XGA) # High Res! sensor.set_windowing((1000, 400))# V Res of 80 == less work (40 for 2X the speed). sensor.skip_frames(time = 2000) 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() tv.init() # 初始化tv tv.channel(8) # 用于无线图传扩展板 # 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() codeh = 0 y = 10000000 print(len(codes)) if (len(codes)>1): for code in codes: img.draw_rectangle(code.rect()) y1 =code.y() print(y1) if(y1<y): y = y1 codeh = code if(codeh != ""): print_args = (barcode_name(codeh), codeh.payload(), (180 * codeh.rotation()) / math.pi, codeh.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) else: for code in codes: img.draw_rectangle(code.rect()) codeh = code print_args = (barcode_name(codeh), codeh.payload(), (180 * codeh.rotation()) / math.pi, codeh.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) #img.lens_corr(1.8) # strength of 1.8 is good for the 2.8mm lens. for code in img.find_qrcodes(): img.draw_rectangle(code.rect(), color = (255, 0, 0)) print(code) img.crop(x_scale=0.352, y_scale=0.6) tv.display(img) if not codes: print("FPS %f" % clock.fps())
-
RE: 有线图传显示无法显示xga画质?
@kidswong999 请教一下大大 openmv有没有类似opencv 的resize函数 我把xga的图像压缩成352x240再显示
-
有线图传显示无法显示xga画质?
使用有线图传显示,画质为xga,显示不完整且运行一会就卡死,是硬件不支持吗,需要怎样才能显示xga图像
# Barcode Example # # This example shows off how easy it is to detect bar codes using the # OpenMV Cam M7. Barcode detection does not work on the M4 Camera. import sensor, image, time, math,tv import time from pyb import Pin, Timer # 50kHz pin6 timer2 channel1 #light = Timer(2, freq=50000).channel(1, Timer.PWM, pin=Pin("P6")) #light.pulse_width_percent(10) # adjust light 0~100 import sensor, image, time sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.XGA) # High Res! sensor.set_windowing((1000, 400))# V Res of 80 == less work (40 for 2X the speed). sensor.skip_frames(time = 2000) 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() tv.init() # 初始化tv tv.channel(8) # 用于无线图传扩展板 # 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() codeh = 0 y = 10000000 print(len(codes)) if (len(codes)>1): for code in codes: img.draw_rectangle(code.rect()) y1 =code.y() print(y1) if(y1<y): y = y1 codeh = code if(codeh != ""): print_args = (barcode_name(codeh), codeh.payload(), (180 * codeh.rotation()) / math.pi, codeh.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) else: for code in codes: img.draw_rectangle(code.rect()) codeh = code print_args = (barcode_name(codeh), codeh.payload(), (180 * codeh.rotation()) / math.pi, codeh.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) #img.lens_corr(1.8) # strength of 1.8 is good for the 2.8mm lens. for code in img.find_qrcodes(): img.draw_rectangle(code.rect(), color = (255, 0, 0)) print(code) tv.display(img) if not codes: print("FPS %f" % clock.fps())
-
RE: XGA连续识别条形码经常发生卡死现象?
@kidswong999
检查了usb接口,然后使用例程里面的条形码 改为xga画质,还是运行一段时间就卡死# Barcode Example # # This example shows off how easy it is to detect bar codes using the # OpenMV Cam M7. Barcode detection does not work on the M4 Camera. import sensor, image, time, math sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.XGA) # High Res! #sensor.set_windowing((640, 80)) # V Res of 80 == less work (40 for 2X the speed). sensor.skip_frames(time = 2000) 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())
-
RE: XGA连续识别条形码经常发生卡死现象?
@kidswong999 现在测试第一次12分钟就断连 重新连接后 几分钟就断连,是不是xga大画面传输 导致温度太高了,然后自己断了 。
-
XGA连续识别条形码经常发生卡死现象?
运行一段时间就发生卡死现象,然后直接直接断连,图为断连前打印数据
功能是同时识别二维码和条形码,如果画面有多个条形码,就取最上面一个。
# Barcode Example # # This example shows off how easy it is to detect bar codes using the # OpenMV Cam M7. Barcode detection does not work on the M4 Camera. import sensor, image, time, math import time from pyb import Pin, Timer # 50kHz pin6 timer2 channel1 light = Timer(2, freq=50000).channel(1, Timer.PWM, pin=Pin("P6")) light.pulse_width_percent(50) # adjust light 0~100 import sensor, image, time sensor.reset() sensor.set_pixformat(sensor.GRAYSCALE) sensor.set_framesize(sensor.XGA) # High Res! sensor.set_windowing((1000, 400))# V Res of 80 == less work (40 for 2X the speed). sensor.skip_frames(time = 2000) 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() codeh = 0 y = 10000000 print(len(codes)) if (len(codes)>1): for code in codes: img.draw_rectangle(code.rect()) y1 =code.y() print(y1) if(y1<y): y = y1 codeh = code if(codeh != ""): print_args = (barcode_name(codeh), codeh.payload(), (180 * codeh.rotation()) / math.pi, codeh.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) else: for code in codes: img.draw_rectangle(code.rect()) codeh = code print_args = (barcode_name(codeh), codeh.payload(), (180 * codeh.rotation()) / math.pi, codeh.quality(), clock.fps()) print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args) #img.lens_corr(1.8) # strength of 1.8 is good for the 2.8mm lens. for code in img.find_qrcodes(): img.draw_rectangle(code.rect(), color = (255, 0, 0)) print(code) if not codes: print("FPS %f" % clock.fps())
-
请问识别40-100cm内的条形码 需要用什么样的镜头 条形码约为长7cm 高1cm 用标配镜头和例程调节后无法识别?
范围在40-100内,不需要自动对焦,多个相机对应一个焦距,请问需要选什么模组和镜头,用得上openmv4h7plus+ov5640+标配镜头
-
如果让触发控制识别条形码变得稳定?
请教一下大大,我现在设计一个支架固定了openmv相机,目前是通过串口触发拍摄识别条形码,固定条码测试连续触发10次拍摄10张,同样位置拍摄的固定条码,可能只能识别到7次或者8次。但在实际场景中每次条码经过只触发一次,如何提高识别成功率
循环代码
while(True): #clock.tick() img = sensor.snapshot() codes = img.find_barcodes() for code in codes: img.draw_rectangle(code.rect()) if code.payload() is not None : uart3.write(code.payload()) #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("not codes") else: img = sensor.snapshot()
全代码
import sensor, image, time, math from pyb import UART 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(time = 2000) 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() uart3 = UART(3, 19200,timeout=1000) uart1 = UART(1, 19200,timeout=1000) # 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()) if code.payload() is not None : uart3.write(code.payload()) #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("not codes") else: img = sensor.snapshot()
由于是流水线作业,条形码停留时间可能就几秒,所以不能一直拍摄等待识别到条形码再去处理,现在的解决方法是每次触发拍摄3张,识别3次,想请教一下有没有更好的方法提高识别率