OpenMV是基于嵌入式STM32单片机的基础上,经过层层封装之后,运用microPython语法开发的模块。
导入函数
import语句用来导入其他python文件(称为模块module),使用该模块里定义的类、方法或者变量。
import sensor,image,time
此次分别导入了sensor感光模块,图像模块,计时模块。 或者用 import 函数名 from 类
设置摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
颜色设置:、
sensor.GRAYSCALE: 灰度,每个像素8bit。 sensor.RGB565: 彩色,每个像素16bit。
图像大小:
sensor.QQCIF: 88x72 sensor.QCIF: 176x144 sensor.CIF: 352x288 sensor.QQSIF: 88x60 sensor.QSIF: 176x120 sensor.SIF: 352x240 sensor.QQQQVGA: 40x30 sensor.QQQVGA: 80x60 sensor.QQVGA: 160x120 sensor.QVGA: 320x240 sensor.VGA: 640x480 sensor.HQQQVGA: 80x40 sensor.HQQVGA: 160x80 sensor.HQVGA: 240x160 sensor.B64X32: 64x32 (用于帧差异 image.find_displacement()) sensor.B64X64: 64x64 用于帧差异 image.find_displacement()) sensor.B128X64: 128x64 (用于帧差异 image.find_displacement()) sensor.B128X128: 128x128 (用于帧差异 image.find_displacement()) sensor.LCD: 128x160 (用于LCD扩展板) sensor.QQVGA2: 128x160 (用于LCD扩展板) sensor.WVGA: 720x480 (用于 MT9V034) sensor.WVGA2:752x480 (用于 MT9V034) sensor.SVGA: 800x600 (仅用于 OV5640 感光元件) sensor.XGA: 1024x768 (仅用于 OV5640 感光元件) sensor.SXGA: 1280x1024 (仅用于 OV5640 感光元件) sensor.UXGA: 1600x1200 (仅用于 OV5640 感光元件) sensor.HD: 1280x720 (仅用于 OV5640 感光元件) sensor.FHD: 1920x1080 (仅用于 OV5640 感光元件) sensor.QHD: 2560x1440 (仅用于 OV5640 感光元件) sensor.QXGA: 2048x1536 (仅用于 OV5640 感光元件) sensor.WQXGA: 2560x1600 (仅用于 OV5640 感光元件) sensor.WQXGA2: 2592x1944 (仅用于 OV5640 感光元件)
帧率时钟
clock=time.clock()
clock.tick()
clock.fps()
传输图像
img=sensor.snapshot()
感兴趣区(ROI)
roi是从左上角的坐标开始向下和向右来括定区域的。 所以roi的格式为(x, y, w, h) x:ROI区域中左上角的x坐标 y:ROI区域中左上角的y坐标 w:ROI的宽度 h:ROI的高度 roi是将传送的图像切割,相当于截图,其他部分忽略掉。 以下即可设置感兴趣区
img.get_statistics(roi=(0,0,10,20))
或者设置一定区域从中间取
sensor.set_framesize(sensor.VGA)
sensor.set_windowing((640, 80))
可在IDE中,查看其大小,也可以外接led查看。
获取像素/设置像素点
image.get_pixel(x,y) 来获取一个像素点的信息, 可返回灰度值或颜色的rgb值
image.set_pixel(x,y,pixel) 来设置(x,y)像素点的颜色 例如:
img = sensor.snapshot()
img.get_pixel(10,10)
img.set_pixcel(10,10,(255,0,0))
片`
对图像数据进行分析
image.width() 返回图像的宽度(像素)
image.height() 返回图像的高度(像素)
image.format() 灰度图会返回 sensor.GRAYSCALE,彩色图会返回 sensor.RGB565。
image.size() 返回图像的大小(byte)
image.invert() 取反,对于二值化的图像,0(黑)变成1(白),1(白)变成0(黑)。
image.nand(image) 与另一个图片进行与非(NAND)运算。
image.nor(image) 与另一个图片进行或非(NOR)运算。
image.xor(image) 与另一个图片进行异或(XOR)运算。
image.xnor(image) 与另一个图片进行异或非(XNOR)运算。
image.difference(image) 从这张图片减去另一个图片。比如,对于每个通道的每个像素点,取相减绝对值操作。这个函数,经常用来做移动检测。
灰度的计数函数 statistics.mean() 返回灰度的平均数(0-255) (int)。你也可以通过statistics[0]获得。 statistics.median() 返回灰度的中位数(0-255) (int)。你也可以通过statistics[1]获得。 statistics.mode() 返回灰度的众数(0-255) (int)。你也可以通过statistics[2]获得。 statistics.stdev() 返回灰度的标准差(0-255) (int)。你也可以通过statistics[3]获得。 statistics.min() 返回灰度的最小值(0-255) (int)。你也可以通过statistics[4]获得。 statistics.max() 返回灰度的最大值(0-255) (int)。你也可以通过statistics[5]获得。 statistics.lq() 返回灰度的第一四分数(0-255) (int)。你也可以通过statistics[6]获得。 statistics.uq() 返回灰度的第三四分数(0-255) (int)。你也可以通过statistics[7]获得。
彩色的计数函数 l_mean,l_median,l_mode,l_stdev,l_min,l_max,l_lq,l_uq, a_mean,a_median,a_mode,a_stdev,a_min,a_max,a_lq,a_uq, b_mean,b_median,b_mode,b_stdev,b_min,b_max,b_lq,b_uq, 三个通道的分别是平均数,中位数,众数,标准差,最小值,最大值,第一四分数,第三四分数。
|