当前位置: 首页 > news >正文

OpenMv图片预处理

本博客讲述的是获取一张图片首先对图像进行处理,比如畸形矫正,图像滤波等操作。

1.histeq()自适应直方图均衡

# 自适应直方图均衡例子
#
# 此示例展示了如何使用自适应直方图均衡来改善图像中的对比度。 
#自适应直方图均衡将图像分割成区域,然后均衡这些区域中的直方图,
#以改善图像对比度与全局直方图均衡化。 
#此外,您可以指定剪辑限制以防止对比度变得狂野。histeq(adaptive=True, clip_limit=50)
# clip_limit <0为您提供正常的自适应直方图均衡,这可能会导致大量的对比噪音...
# clip_limit=1 什么都不做。为获得最佳效果,请略高于1,如下所示。 
# 越高,越接近标准自适应直方图均衡,并产生巨大的对比度波动。

如果没有参数输入那么久默认直方图均衡,目增大对比度。

亮的地方更亮,暗的地方更暗

2.模糊滤波

    sensor.set_framesize(sensor.QQVGA) img = sensor.snapshot() # 拍一张照片,返回图像    # 在图像的每个像素上运行核。
    img.gaussian(1)

 结论:通过对比不同的核数发现核数越大图像越模糊,随着核数的增大帧率也降低

 3.核滤波

这个参数还没搞懂,以后需要在研究,先速成在说

import sensor, image, timesensor.reset() # 初始化sensorsensor.set_pixformat(sensor.GRAYSCALE) # or sensor.RGB565
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种sensor.set_framesize(sensor.QVGA) # or sensor.QQVGA (or others)
#设置图像像素大小sensor.skip_frames(time = 2000) # 让新的设置生效
clock = time.clock() # 跟踪FPS帧率kernel_size = 1 # 3x3==1, 5x5==2, 7x7==3, etc.kernel = [-2, -1,  0, \-1,  1,  1, \0,  1,  2]while(True):clock.tick() # 追踪两个snapshots()之间经过的毫秒数.img = sensor.snapshot() # 拍一张照片,返回图像# Run the kernel on every pixel of the image.# 在图像的每个像素上运行核img.morph(kernel_size, kernel)print(clock.fps()) # 注意: 当连接电脑后,OpenMV会变成一半的速度。当不连接电脑,帧率会增加。

上述代码核滤波的效果

4.卡通化滤波-在我这个上无法使用

# seed_threshold控制着色区域的最大区域增长。 将其放大会合并更多像素。# floating_threshold控制增长区域时的最大像素到像素的差异。设置高的值将快速组合图像中的所有像素。你应该使其小一些。# cartoon() 将增长同时两个限制都满足的区域...img = sensor.snapshot().cartoon(seed_threshold=0.05, floating_thresholds=0.05)

5.彩图双边滤波

import sensor, image, timesensor.reset()                      # 初始化sensorsensor.set_pixformat(sensor.RGB565) # or sensor.RGB565
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种sensor.set_framesize(sensor.QQVGA)  # or sensor.QVGA (or others) 
#设置图像像素大小sensor.skip_frames(time = 2000)     # 让新的设置生效
clock = time.clock() # 跟踪FPS帧率while(True):clock.tick() # 追踪两个snapshots()之间经过的毫秒数.img = sensor.snapshot() # 拍一张照片,返回图像# color_sigma controls how close color wise pixels have to be to each other to be# color_sigma控制彩色明智像素之间必须有多近的距离才能模糊。# blured togheter. A smaller value means they have to be closer.# 更小的值意味着它们必须更接近。# A larger value is less strict.# 较大的值不那么严格。# space_sigma controls how close space wise pixels have to be to each other to be# space_sigma控制空间智慧像素彼此之间必须有多近才能模糊# blured togheter. A smaller value means they have to be closer.# 更小的值意味着它们必须更接近。# A larger value is less strict.# 较大的值不那么严格。# Run the kernel on every pixel of the image.# 在图像的每个像素上运行核img.bilateral(3, color_sigma=0.1, space_sigma=1)# Note that the bilateral filter can introduce image defects if you set# color_sigma/space_sigma to aggresively. Increase the sigma values until# the defects go away if you see them.# 请注意,如果将color_sigma/space_sigma设置为聚合,双边过滤器可能会引入图像缺陷。# 如果你看到缺陷,增加sigma值直到
http://www.lryc.cn/news/358187.html

相关文章:

  • Springboot 实战运用
  • kafka的安装与简单使用
  • 【服务器部署篇】Linux下Node.js的安装和配置
  • 【OrangePi AIpro】香橙派 AIpro 为AI而生
  • AES算法
  • 自主创新助力科技强军,麒麟信安闪耀第九届军博会
  • Android Retrofit 封装模版
  • 【介绍下运维开发】
  • mybatis-plus中多条件查询使用and合or嵌套使用
  • 前端加密的方式汇总
  • ELT 同步 MySQL 到 Doris
  • 100个 Unity小游戏系列七 -Unity 抽奖游戏专题五 刮刮乐游戏
  • 链游:区块链技术的游戏新纪元
  • 格式化字符串
  • 错误信息:Traceback (most recent call last):
  • Thinkphp3.2.3网站后台不能访问如何修复
  • Golang 如何使用 gorm 存取带有 emoji 表情的数据
  • 计算机算法中的数字表示法——原码、反码、补码
  • BGP策略实验
  • 目标检测 | R-CNN、Fast R-CNN与Faster R-CNN理论讲解
  • 【busybox记录】【shell指令】mkdir
  • SQL刷题笔记day6-1
  • KITTI数据中pose含义
  • C++模拟实现stack和queue
  • awtk踩坑记录一:awtk-web build.py编译过程笔记
  • docker容器中解决中文乱码
  • Javascript 位运算符(,|,^,<<,>>,>>>)
  • Golang项目代码组织架构实践
  • 网工内推 | 国企信息安全工程师,CISP认证优先
  • RAG 高级应用:基于 Nougat、HTML 转换与 GPT-4o 解析复杂 PDF 内嵌表格