前言
这两周实习需要使用python+opencv实现一个图像处理的程序,我们组完成的是车牌识别程序。借此机会稍微了解一些图像处理的知识。
灰度化
当我们拿到一个照片后,首先进行灰度化处理将彩色照片变成灰色照片,因为一些方法只能处理灰色图像。将彩色图像变为灰色图像的过程称为灰度化。
灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。
这让我想到了以前的黑白电视机,现在猜想以前只有黑白电视机的原因之一是传输速率没有那么高,使用灰度图像比彩色图像减少3/2数据。
假设一个像素点表示为f(x,y)=(r,g,b)
那么变为灰色图像的的原理是f(x,y)=0.21r+0.71g+0.07+b
效果如图
卷积
在了解边缘检测之前,先了解卷积的概念
假设取出边缘一圈0的中间是我们灰度化后的图像,我们先在外圈补一圈0,然后与我们的3*3的卷积核(这是我们自己定义的),依次相乘求和,得到新的图像。
如上图淡黄色里的每一个数值与对应位置黄色的每一个数值相乘然后求和。得到新的数值。然后我们将淡黄色右移一格,得到临近的数值,依次得到新的图像。
边缘检测
边缘检测用于找到一个物体的边缘,我们先观察一下一格物体的边缘有什么特点,如上图中人的肩膀,肩膀左下侧图像亮一些,肩膀外图像暗一些,肩膀轮廓左右图像灰度值变化较大。我们找的边缘就是灰度值变化大的点。我们在连续函数中求变化大的方法是导数。但是在离散的图像中求变化率用到了卷积。
该方法包含两组3x3的矩阵,分别为横向及纵向,将之与图像作卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如上。、
效果如图
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。