美文网首页
OpenCV 实战之图像操作与增强

OpenCV 实战之图像操作与增强

作者: you的日常 | 来源:发表于2020-11-28 18:46 被阅读0次

完成机器视觉系统的搭建、校准并且确认其可以采集检测目标的图像后,就可以集中精力开发各种图像分析、处理以及模式识别算法。算法是机器视觉系统完成各种任务的核心。

为了设计准确性和鲁棒性都较高的算法,并提高其执行速度,一般需要事先对整幅图像或部分像素进行操作,使图像尺寸或形状更适合计算机处理。某些时候还要对图像进行算术和逻辑运算,以消除噪声或提高图像的对比度。这些前期的图像操作或运算不仅会在空间域增强图像,还能极大地提高后续算法的执行速度及其有效性。

本文主要涉及到的知识点有:

  • 介绍灰度分析与变换
  • 介绍空间域图像增强
  • 特征分析

1. 实验环境的安装

Anaconda 是开发 Python 最常用的开源平台之一,已经为你安装了 Python 中最常用的工具库(NumPy、Matplotlib、SciPy、IPython 等),使用起来非常方便。

1.1 Ubuntu 下安装 Anaconda

1. 下载一个 Anaconda

我们可以从官网下载:

https://www.anaconda.com/distribution/#download-section

image.png

我们若在 Ubuntu 中下载,那么文件默认保存在 Download 文件夹下。

2. 执行脚本

我们进入下载路径 ~/Downloads 或者我们也可以进入到图形化界面的 download 文件夹。右键 Open In Terminal,然后就会打开终端,并进入当前文件夹。

然后执行脚本:

cbash Anaconda3-5.0.1-Linux-x86_64.sh 

然后就会自动安装前期你要同意一些协议,键盘输入 yes,翻阅协议使用 Enter 键。

3. 修改环境变量

进入到用户主目录,使用 gedit 对 .bashrc 进行编辑,添加系统环境变量 PATH。在文件末尾添加一行:

export PATH=/home/fange/anaconda3/bin:$PATH

刷新一下 source:

source .bashrc 

4. 测试安装 Anaconda 的安装

终端输入 python

如果显示如下,就说明你安装成功了。

1.2 利用 Anaconda 安装 pythone-opencv

1. 使用命令行 conda 搜包

我们进入 conda 的官方文档:

https://conda.io/docs/

查询一下如何搜索包,我们想搜索 OpenCV 相关的包。

在这里插入图片描述

图 5 conda 软件图

查阅文档我们得知,conda 搜索 OpenCV 相关包的指令是:

conda search opencv 

在这里插入图片描述

我们可以看到 conda 支持的一堆 OpenCV 的版本。

2. 进入 Anaconda Cloud 检索包

我们需要到 Anaconda Cloud 的 https://anaconda.org/ 上检索包。

在这里插入图片描述

这里我们选择这个来自 conda-forge Channel 的 OpenCV 的包,可以看到它支持的最新的 OpenCV 的版本号是 3.3.0。

在这里插入图片描述

我们点进第一个 opencv 4.11:

在这里插入图片描述

3. 添加 channel

接下来进入到 conda-forge 的官网上,发现,如果我们想用 conda 安装它们打的包,就需要另外添加一个 channel:

conda config --add channels conda-forge

否则 conda 检索不到这个包。

在这里插入图片描述

4. 安装 opencv-python

接下来我们就安装 conda-forge 这个 channel 下的 opencv3 的包。

conda install -c conda-forge opencv=3.3.0 

其中 -c 代表 channels。

2. 灰度分析与变换

图像灰度分析是图像分析中最基本的内容,它使用各种图像灰度分析工具,提取图像或 ROI 区域内的灰度特征信息。基于对图像灰度的分析测量,可以实现最基本的机器视觉检测系统,如目标存在性检测系统等。

2.1 直方图介绍

直方图(histogram)是最基本的图像灰度分析工具。使用它不仅可以判断图像中是否包含可从背景中分割出的区域、图像的饱和度和对比度是否适合检测任务,还能确定应该如何对图像采集系统进行调整以获得较高质量的图像。

图像的直方图包含了丰富的图像信息,描述了图像的灰度级内容,反映了图像的灰度分布情况。图像的灰度直方图以图表的方式显示了图像中每个灰度级与其所对应像素数量的关系。图表的横坐标为灰度级,纵坐标是各个灰度级在图像中出现的频率。直方图是图像最基本的统计特征,其中像素数量可被看作灰度级的函数。从概率论的角度来看,灰度出现的频率可被看作其出现的概率,这样直方图就对应于概率密度函数(Probability Density Function,PDF),而概率分布函数就是直方图的累计和,即概率密度函数的积分。

要深刻理解直方图我们可以使用 Ubuntu 上的 Shotwell viewer 软件中 adjust 的可以先直观的的查看图片的直方图并可以调试相关参数。

在这里插入图片描述
  • 第一行为曝光(Exposure)
  • 第二行为饱和度(Saturation)
  • 第三行为色度(Tint)
  • 第四行为温度(Temperature)
  • 第五行为阴影度(shadows)
  • 第六行为亮度(Highlights)

我们可以调节这六个参数去观察直方图的变化去理解直方图的意义,例如我将亮度调节到最低此时直方图末尾将被抑制下去。

在这里插入图片描述

2.2 直方图绘制

OpenCV 提供了函数 cv2.calcHist() 用来计算图像的统计直方图,该函数能统计各个灰度级的像素点个数。利用 matplotlib.pyplot 模块中的 plot() 函数,可以将函数 cv2.calcHist() 的统计结果绘制成直方图。

函数原型:

cv2.calcHist(images, channels, mask, histSize, ranges, accumulate) 

  • 第一个参数 image 为原始图像,该图像需要使用必须用方括号括起来。
  • 第二个参数 channels 为指定通道编号。通道编号需要用方括号括起来,如果输入图像是单通道灰度图像,该参数的值就是 [0]。对于彩色图像,它的值可以是 [0]、[1]、[2],分别对应通道 B、G、R。
  • 第三个参数 Mask 为掩模图像,当统计整幅图像的直方图时,将这个值设为 None。当统计图像某一部分的直方图时,需要用到掩模图像。
  • 第四个参数 histSize 表示这个直方图分成多少份(即多少个直方柱),BINS 的值是 256,需要使用“[256]” 作为此参数值。
  • 第五个参数 ranges 表示直方图中各个像素的值,8 位灰度图像的像素值范围是 [0,255]。
  • 第六个参数 accumulate 表示为累计(累积、叠加)标识,默认值为 False。如果被设置为 True,则直方图在开始计算时不会被清零,计算的是多个直方图的累积结果,用于对一组图像计算直方图。

相关文章

  • OpenCV 实战之图像操作与增强

    完成机器视觉系统的搭建、校准并且确认其可以采集检测目标的图像后,就可以集中精力开发各种图像分析、处理以及模式识别算...

  • openCV

    Opencv2图像裁剪(子图像提取) opencv之读取图像 #######opencv读取图像的灰度值并显示出来...

  • 000 环境搭建

    一、OpenCV学习路线 OpenCV IO模块 - (图像与视频读写) GUI部分 - (窗口与显示) 图像处理...

  • Opencv图像操作

    从文件读取/写入图像,访问像素,原始操作,可视化图像 输入/输出 从文件中加载图像: 把自定义读入的彩色照片变成灰...

  • 安卓人工智能-身份证快速识别

    安卓NDK的项目开发实战 实现流程 手机获取身份证图片使用openCV进行图像定位与分割tesseract-OCR...

  • 51cto 贾志刚 OpenCV图像处理从入门到精通系列专题8套

    【课程简介】 OpenCV图像处理从入门到精通系列专题 包含OpenCV图像处理, 图像特征提取与对象识别, 5个...

  • NLP中数据增强的综述大全

    与计算机视觉中使用图像进行数据增强不同,NLP中文本数据增强是非常罕见的。这是因为图像的一些简单操作,如将图像旋转...

  • python-opencv图像增强

    直方图均衡化 直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到...

  • Python代码库OpenCV之08图像过滤blur(含代码)

    Python代码库OpenCV之08图像过滤blur(含代码) 图像过滤 图像过滤(Filtering Image...

  • 图像数据增强实战

    译者 | 小韩 我目前正在做图像数据增强的深度和有效性的研究。这项研究的目的是学习怎样增加只有有限或少量数据的数据...

网友评论

      本文标题:OpenCV 实战之图像操作与增强

      本文链接:https://www.haomeiwen.com/subject/osvubktx.html