• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详解OpenMV图像处理的基本方法

python 搞代码 4年前 (2022-01-09) 68次浏览 已收录 0个评论
文章目录[隐藏]

一、图像处理基础知识

1.摄像头:光学信号转换成电信号。计算机视觉中,最简单的模型是小孔成像模型。
小孔成像是一种理想模型,实际镜头会存在场曲和畸变等,但可以通过在标定过程中引入畸变参数解决,仍可广泛使用。

2.像素和分辨率

3.帧率:每秒钟处理的图片数量,>20人眼分辨不出卡顿。

4.颜色:不同波长的电磁波
通过RGB. CMYK HSB LAB色域来描述
RGB:三原色原理不是物理原因而是人的生理原因造成(锥形感光细胞)
LAB:L(亮度)、A(+:红色,-:绿色)、B(+:黄色,-:蓝色)用来接近人类视觉
L用来调整亮度对,a和b用来输出色阶来做精确的颜色平衡(查找色块算法)
HSB/HSV:H(Hue色相)、S(Saturation饱和度)、B(Brightness明度)
HSL:L(亮度)
CMYK:C(蓝色)、M(红色)、Y(黄色)、K(黑色)
CMYK和RGB的区别:
(1)CMYK是减色模式,而RGB是加色模式
(2)CMYK需要外界光源才能看到,印刷品颜色;RGB是屏幕显示发光的色彩模式,在黑暗房间也能看到

5.光源的选择(光源对整个画面的颜色变化有很大影响)

6.镜头的焦距和镜头畸变
焦距决定了拍摄的成像大小,视场角大小,景深大小和画面的透视强弱。焦距长成像大(视角越小),焦距短成像小
镜头畸变:用代码矫正镜头或直接使用无畸变镜头(加入了额外的矫正透镜部分)
在感光芯片上的不同位置,与镜头距离不同近大远小,在边缘出现鱼眼效果(桶形畸变)
标配镜头――桶形畸变
广角镜头――同样的区域取景范围大了
无畸变镜头
长焦镜头――锁定原来图像中的某一具体物体

7.镜头的滤片
滤掉红外光(根据需要滤掉不同波长的光),红外光在正常分析颜色图片的时候会使图像泛白影响分析。(只能通过650nm以内的)

二、OpenMV图像处理的基本方法

1. 感光元件

sensor模块,用于设置感光元件的参数。

sensor常用函数:

import sensor # 引入感光元件部分
# 设置摄像头
sensor.reset() # 初始化感光元件
sensor.set_pixformat(sensor.RGB565)# 设置像素模式 sensor.GRAYSCALE:灰度,每个像素8bit, sensor.RGB565:彩色。每个像素16bit
sensor.set_framesize(sensor.QVGA)# 设置图像大小
s<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码网^</strong>ensor.skip_frames(n)# n是跳过的帧数,等待感光元件稳定
# 拍摄
while(True):
   img = sensor.snapshot();# 拍摄一张照片,img为一个image对象

# 自动增益/白平衡/曝光
sensor.set_auto_gain() # True开启;False关闭,使用颜色追踪时,需关闭
sensor.set_auto_whitebal() # True开启;False关闭,使用颜色追踪时,需关闭
sensor.set_auto_exposure(enable[\,exposure_us])
# enable True打开/False关闭
# 如果关闭可以自己设置一个曝光值us为单位

# 设置窗口ROI
sensor.set_windowing(roi) #roi的格式是(x, y, w, h)的tupple.
sensor.set_framesize(sensor.VGA)
sensor.set_windowing((640,80))#选择出自己想要的元素

# 设置翻转
sensor.set_hmirror(True)# 水平方向翻转
sensor.set_vflip((True)# 垂直方向翻转

sensor图像大小常用数据

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 感光元件)

相关名词解释


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解OpenMV图像处理的基本方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址