2013-12-24 12:32:07 zmycoco2 阅读数 6270


本科毕业设计(论文)开题报告

 


         

课题名称

基于数字图像处理的车牌定位和分割的研究

毕业设计的内容和意义 

采用数字图像处理的原理和技术,进行车牌区域的准确定位和分割的研究,给出相应的算法,并通过VC编程实现。

毕业设计的具体内容:

1.熟悉和了解数字图像处理的原理和技术。

2.熟悉VC的编程和调试方法。

3.掌握数字图像处理的常规算法,尤其对图像的几何校正,边缘检测、区域定位和图像分割原理和算法要有深入的了解。

4. 完成车牌区域的准确定位和分割的设计方案,给出相应的算法,并通过编程实现。

本课题研究的意义:

在交通路口的违章监视,在高速公路收费入口,在涵洞、桥梁的入口以及在停车场和加油站的管理中,都需要对汽车牌照进行记录,而目前这些工作大多数都是由人工完成的,工作量很大,有时也难免会出现错误,如果改用智能系统进行自动的检测和识别,则会大大提高工作的速度,降低管理人员的工作量,提高服务的效率与质量。

在国内现有技术的基础之上进一步研究汽车牌照智能识别技术实现对实时采集到的汽车牌照图像进行分析,准确定位分割、提取出图像中的汽车牌照,并快速自动智能地识别出汽车牌照,还可以全面消除人为因素,因而对车牌识别技术的研究和应用系统开发具有重要的现实意义。

车牌自动识别系统从上一世纪80年代开始进入应用研究阶段、这个阶段的研究没有形成完整的系统体系,而是就某一具体的问题进行研究,通常采用简单的图像处理方法来解决。进入20世纪90年代后,随着计算机视觉的发展和计算机性能的提高,开始出现车牌识别的系统化研究。中国、美国、日本、法国等国家相继投入大量的人力、物力进行应用研究,随着社会的进一步发展,交通状况急需更快的发展来适应经济发展需要,各国更加关注对该系统的研究和应用。

文献[1]中阐述了智能交通系统的概念于1990年由美国智能交通学会(ITS America,当时名称为IVHS America)提出,并在世界各国大力推广。经过10多年的推广、试行和发展,智能交通系统目前己在世界上经济发达国家和经济较为发达国家的一些都市及高速公路系统中实施。实践证明,迄今为止,在美国、欧洲、亚洲都已有成功应用的范例。在国外,以色列Hi-Tech公司的See/Car System系列,香港Asia VisionTechnology公司的VECON产品,新加坡Optasia公司的VLPRS系列都是比较成熟的产品。虽然国外汽车牌照识别系统研究工作己有一定进展,但并不适合我国汽车牌照识别,其原因主要有我国车牌本身的特点决定的。我国车辆牌照缺乏统一的标准,根据不同汽车、车型、用途,规定了多种牌照格式(例如分为军车、警车、普通车等);悬挂位置随机,使得车牌识别过程中缺乏规律,使车牌定位分割、字符切分难度增加,准确性降低;车牌长期暴露易受污损,使得车牌区域模糊不清,易发生粘连、断裂等现象,在国外发达国家不允许由于环境、道路或人为因素造成汽车牌照污染严重的车辆上路行驶;我国车辆牌照由汉字、字母和数字组成,汉字的识别与字母和数字的识别有很大的不同,从而增加了识别的难度;其他国家汽车牌照的底色和字符颜色统一,只有对比度较强的两种颜色,而我国汽车牌照底色和字符有蓝/白、黑/红、黑/白等多种颜色组合;还有设置的营运牌照及张贴的广告信息,容易在车牌定位时产生干扰、误定位;车牌附近环境恶劣,往往有复杂的外形及安全杠等,不利于快速定位。

文献[2]中阐述了国内在90年代也开始了车牌识别的研究。由于中国车牌与国外的差异,加上车牌上汉字的存在。所以照搬国外的技术并不完全可行。对于国内的己应用系统中较成功的有浙江大学开发的基于web模式的LPR系统,中科院自动化研究所汉王科技公司开发的“汉王眼车牌识别系统”。另外,亚洲视觉科技有限公司、深圳吉通电子有限公司、中国信息产业部下属的中智交通电子有限公司等也有自己的产品,另外西安交通大学的图像处理和识别研究室、上海交通大学的计算机科学和工程系、清华大学人工智能国家重点实验室等也做过类似的研究。目前这些系统普遍存在的问题有:全天候识别率并不稳定,

特别是在夜间,或不良天气下识别率会降低到50%左右。还有许多其它问题需要解决,如国内许多论文谈及已实现的系统,都是在对近似理想条件下的汽车图像识别,对于车牌倾斜角度很大,车牌上字符模糊等情况提出的解决办法甚少。因此这样的系统即使识别率较高,也是建立在苛刻的特定的拍照环境下的。车牌自动识别系统产品中还存在一些不足,因而LPR技术的研究还有许多工作要做:从目前一些产品的性能指标可以看出,LPR系统的识别率和识别速度有待提高。研究高速、准确的定位与识别算法是当前的主要任务。上述产品中所使用的汽车图像均为灰度图像,而车牌本身是彩色物体,其底色和字符颜色为有限的几种,具有明显的颜色特征,车牌定位及字符的分割和识别没有用到颜色特征,采用彩色图像模式,目前的算法也很少涉及颜色特征,这在一定程度上影响了系统的性能。对于车牌彩色信息的利用有待于深入研究。另外目前只能处理单个车牌的汽车图像,对于一幅图像中多个车牌的识别则无能为力。这使得目前对多个车道进行监控时,需要多套摄像设备和车牌识别所需的计算机。如能深入研究一幅图像中多个车牌的识别问题,则可降低系统成本,提高工作效率。

所以从技术上对牌照自动识别系统进行进一步的改进完善是很有必要的。在软件上这主要要求提高字符识别率,同时提高软件的运行速度,提高实时性。相信随着研究的深入,LPR技术定会走向成熟。

文献[3]中阐述了目前国内外汽车牌照定位与识别技术主要采用软硬结合方式和软件方式两种技术方案。所谓软硬结合方式,就是首先通过专用的图像抓拍设备获取一幅适合于计算机识别汽车牌照的高质量图像,然后用软件和硬件结合的方式对所获取的专用图像进行牌照识别,它的最大优点就是识别率高,能够全天候工作。所谓软件方式,就是通过识别软件对普通的车辆图像进行牌照识别,它的最大优点就是成本低,通用性好。车牌自动识别系统主要有摄像装置、视频采集接口、计算机和辅助照明装置组成。计算机通过视频采集接口采集摄像装置摄入的视频图像,经处理和识别得到车牌号。在自然光较暗影响识别效果时,由辅助照明装置提供摄像光源。硬件部分包括车辆感应器,高速摄影装置等。车辆感应器的功能是感应车辆的到来,触发高速摄影装置在一定时间内动作抓拍图像。如在高速公路上,通常在收费处前方公路两侧埋置电磁感应圈,当车辆驶入感应区内,电磁感应圈产生电流,触发摄影头工作。除此之外,还有激光红外线车辆感应器等。埋置电磁感应线圈的缺点是工程量大,而激光红外线车辆感应器容易引起二次触发,即脱车引起的触发拍照。动态车牌图像捕捉系统主要由高分辨率摄像机,多光谱照明灯,图像处理器及控制器组成。它根据亮度变化,即可完成车牌的抓拍。相比而言,动态车牌图像捕捉

系统可以在白天和夜间等多种情况下工作,清楚捕捉高速运动中的汽车牌照图像,其效果不受日光,车灯等环境因素的影响。大量实验表明该方案是最理想的解决可靠性的方案。

图像输入通常由硬件完成,牌照定位与字符识别通常由软件完成。

文献[4][5][6]中阐述了日前存在的大量的车牌定位算法,选择一个好的定位算法成为车牌识别的一个关键问题。文中针对基于投影法的车牌定位算法。在VC平台上对车牌图像进行预处理后,再通过找点和标出矩形即可实现车牌的定位。通过大量的试验得出,本算法可以解决车牌定位时遇到的绝大部分问题,具有较高的研究价值和社会经济效益。

文献[7]中对智能交通系统的核心技术——汽车牌照识别技术进行了研究,在图像处理技术的基础上,着重研究了车牌区域定位技术,析了日前有代表性的车牌定位方法,介绍了利用粒子图像测速关联PIV(Particle Image Velocimeter)算法原理,提出了一种采用车牌字符笔画2个边缘互相关值最大的方法进行车牌定位的算法,准确而快速地检出了车牌区域,为后续车牌字符识别打下了很好的基础。

文献[8][9][10][11]中阐述了针对不同尺寸车牌图像的定位问题,提出了一种新的自适应车牌定位方法。该方法首先根据车牌区域的共性来提取图像的纵向边缘;然后由车牌区纵向纹理和边缘密度等特征,采用一系列步骤自适应去除干扰边缘来保留类车牌特征区域;最后通过横向形态学运算使类车牌区闭合,以有效地克服以往形态学结构元素难以随车牌尺寸变化自适应选取的问题;同时提出了根据场景实际情况,选用灰度调整和颜色来判别模块的观点。通过实际场景中大量车牌样本的验证结果表明,该算法不仅准确率较高,而且自适应性良好,具有实用价值。

参考文献:

[1] 刘允才.智能交通国际发展概况和国内优先考虑的课题[J].公路,2001,11(11):26-34.

[2] Liu Jilin,Ma Hongqing.A High Performance License Plate Recognition System Basedon the Web Technique[D].

[3] 郑南宁,张西宁,戴莹,朱海安.行驶车辆牌照自动识别系统[J].西安交通大学学报,1991,l:43-53.

[4] 张俭鸽,李娜.车牌定位在VC中的实现[J].中国科技信息,2009, (13):123-124.

[5] 郑影.基于VC++的汽车牌照定位与识别系统的设计[D].吉林大学硕士学位论文,2009.

[6] 张宏林.精通Visual C++数字图像模式识别技术及工程实践[M]:第2版.北

京:人民邮电出版社,2008.

[7] 张丽伟,张晶.基于图像处理的车牌定位方法的研究[J].长春工程学院学报(自然科学版),2009,10(2):100-103.

[8] 李宇成,阴亮.基于图像的运动车辆速度测量[J].北方工业大学学报,2008(3):32—36.

[9] 王广宇.汽车牌照识别系统综述[J].郑州轻工业学院学报(自然科学报),2001,16(2):47-50.

[10] 李波,曾致远,周建中.一种自适应车牌图像定位新方法[J].中国图象图形学报,2009,14(10):1978-1984.

[11]Kenneth.R.Castleman.Digital Image Processing,Prentice Hall.1998,4.

本课题主要利用数字图像处理的原理和技术,完成车牌区域的准确定位和分割的设计方案,研究相应的算法,并通过编程实现。

其具体内容如下:

1、理解和掌握数字图像处理的原理和技术,能熟练运用数字图像处理的常规算法。

2、深入研究预处理中的灰度化、二值化、背景削弱、中值滤波等原理,以及图像的灰度变换空间滤波处理等,探索车牌定位常用的方法,研究现在流行的一些算法,总结出其优点和缺点,能够继承传统方法的优点,并加以改进和提高。

3、掌握算法实现的编程语言,熟练运用设计实现的平台Visual C++ 6.0,提高查阅资料的能力,并通过编程实现车牌的定位。

4、研究一种新型的车牌定位方法,本课题采用多层次分割的思想,每次分割都尽可能地减少分析范围,经过多次分割后最终定位出车牌区域。

第1-2周     收集资料,熟悉课题,确定系统总体研究方案。

第3周        熟悉资料,写出开题报告。

第4—5周     熟悉数字图像处理的主要内容。

第6—7周     熟悉VC语言的编程和调试方法。

第8—9周     熟悉并掌握数字图像的常规算法,重点研究边缘检测和区域分割等算法。

第10-11周   用VC编程实现并调试各个处理模块。

第12-13周   对整个系统进行软件联调,整理设计成果。

第14周       撰写论文。

第15周       修改论文,准备答辩。

第16周       毕业答辩。

在车辆识别系统中,牌照区域定位是影响车牌识别系统性能的重要因素之一车牌定位准确与否直接影响字符识别的准确率,以往的拍照定位重要包括:J.Barroso等基于提出的基于水平线搜索的定位方法;R.Parisi提出的机遇TFC变换的频域分析法;Charl Coeitzee等提出的基于Niblack二值化算法及自适应边界搜索算法的定位方法。这些方法或者对背景比较复及光照条件比较敏感,或者定位速度比较慢,为了克服这些缺陷,本课题提出了基于特征的车辆牌照实时定位算法和多层次分割算法,能够更高效地实现车牌的准确定位和分割,充分体现了该系统的实时性。

指导教师

意  见

指导教师签名:

         年   月   日

教研室意见

  主任签名:

      年   月   日

系部意见

 

                                         教学主任签名:

                                                 年   月   日

 

2019-01-24 15:20:40 cx1165597739 阅读数 538

[摘要]  在车牌识别系统中,最重要的内容之一就是车牌定位。本文采用了数字图像处理技术,使用python+opencv及常用的数字图像处理方法对各种情况下的车牌进行定位,主要采用了HSV空间的颜色分割和边缘检测及轮廓检测方法,实验结果表明采用的方法及设计的系统都是非常有效的。

关键词:opencv  车牌定位  python

 

  • 概述

随着经济的快速发展,人们生活水平日益提高,汽车也变得越来越普遍。但是与此同时也给交通带来了严重问题,如交通堵塞、交通事故等,为了有效的记录监督此类事故,交通运输和交通管理方面的智能化和信息化变得越来越重要,而在智能化交通系统中车牌识别技术占有重要位置,而车牌定位更是车牌识别的关键内容。针对车牌的情况,我成功设计了一套车牌定位系统来用以定位车牌。

  • 车牌定位系统的构成

 

 

 

该系统主要研究基于python的车牌定位系统,系统主要包括基于颜色的处理、基于边缘的处理和基于轮廓的定位三大核心部分,下面主要介绍这三大部分。

  • 基于颜色的处理

车牌主要由黄色、蓝色、白色等组成,在本系统中只研究黄色和蓝色的车牌。颜色有几种空间,RGB,CMY,HSV,HSL等,RGB颜色空间是基于物体发光定义的(RGB正好对应光的三原色:Red,Green,Blue),CMY颜色空间是基于光反射定义的(CMY对应了绘画中的三原色:Cyan,Magenta,Yellow),HSV、HSL两个颜色空间都是从人视觉的直观反映而提出来的(H是色调,S是饱和度,I是强度)。经过图像的处理及研究,我发现RGB和CMY不利于定位车牌,往往不能通过对颜色三个通道进行限定来消除干扰,所以我采用HSV颜色空间来对图像进行处理,经过图像的处理和观察及网上查阅资料,我发现蓝色的HSV空间值总是在[100,100,50]到[130,255,255]之间,黄色的HSV空间值总是在[15,150,150]到[30,255,255]之间。因此通过取值能够大概的取出车牌的信息,剔除掉大部分的影响因素,除了少部分的车身是蓝色,及周围有蓝色物品之类的没能很好的处理。

  • 基于边缘的处理

基于边缘的检测主要通过中值滤波和sobel算子及图像的形态学运算包括图像的膨胀腐蚀和图像的开运算来进行处理。中值滤波法是一种非线性平滑技术,它将每一像素点的像素值设置为该点某邻域窗口内的所有像素点像素值的中值。对椒盐噪声有非常好的消除作用。Sobel算子是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。通过使用Sobel算子能够有效的提取图像的边缘。在实验过程中还采用了拉普拉斯算子,直方图均衡化,对比度拉伸等方法,但是效果不佳。接着将sobel算子得到的图像进行二值化,最后对得到的二值化图像进行膨胀腐蚀,开运算的交替进行,消除图像中的杂点,获取有用的信息。

  • 基于轮廓的定位

首先,通过将颜色处理后的图像和边缘处理后的图像二者取交集,可以得到最有可能是车牌的区域。然后通过寻找图像中所有的联结成块的区域,求出所有区域的最小外接矩形,寻找面积大于2500的,长宽比在1.5到5之间的矩形区域,对于符合条件的就用红框把矩形区域框出来。

  • 实验结果及分析
  1. 实验结果

实验结果较为不错,canon和iPhone_5s数据集中的白天的图像的车牌能够全部定位出来,hp_recorder数据集的晚上的那些车牌只能定位出4张,其中较为瑕疵的是由于有一些干扰因素,除了定位出车牌,往往也会定位出图像周围有可能是车牌的东西。例如下图

 

 

 
 

 

 

 

 

 
 


还有个别图像车牌会把车的车牌周围的黑色和铁也框进去,例如这张图后面的黑车,所选的区域稍微偏大。

 

 

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from skimage import transform,data
from numpy import *
import  cv2
from scipy import misc
def kuang(res_end,img):#轮廓定位函数
    hh,contours, hierarchy = cv2.findContours(res_end,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)#找出所有的轮廓
    for i in range(len(contours)):##对所有的轮廓进行筛选
        cnt = contours[i]
        rect = cv2.minAreaRect(cnt)
        box = cv2.boxPoints(rect)
        area=cv2.contourArea(cnt)
        leng=(((box[0][1]-box[1][1])**2)+((box[0][0]-box[1][0])**2))**0.5#求长
        high=(((box[0][1]-box[3][1])**2)+((box[0][0]-box[3][0])**2))**0.5#求宽
        if area<2500:
            continue

        if (leng/high<5 and leng/high>1.5) or (leng/high>0.2 and leng/high<0.66):
            rect = cv2.minAreaRect(cnt)
            box = cv2.boxPoints(rect)
            box = np.int0(box)
            cv2.drawContours(img, [box], 0, (0, 0, 255), 10)


    pic = cv2.resize(img, (800, 600), interpolation=cv2.INTER_CUBIC)
    '''cv2.imshow('resize_pic',pic)
    cv2.waitKey(0)'''
    return pic#返回最后框选的结果
if __name__=="__main__":
    str0 = "License_plate/canon/IMG_0"  # IMG_0175.jpg
    str1 = "License_plate/hp_recorder/IMG_0"  # IMG_001.jpg
    str2 = "License_plate/iPhone_5s/IMG_0"  # IMG_0119.jpg
    for tt in range(175, 200):#canon数据集操作
        image = str0 + str(tt) + ".jpg"
        img = cv2.imread(image)#读取图像
        HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)#转化为HSV空间
        H, S, V = cv2.split(HSV)
        LowerBlue = np.array([100, 100, 50])
        UpperBlue = np.array([130, 255, 255])

        mask = cv2.inRange(HSV, LowerBlue, UpperBlue)#进行蓝色的区分
        BlueThings = cv2.bitwise_and(img, img, mask=mask)
        LowerYellow = np.array([15, 150, 150])
        UpperYellow = np.array([30, 255, 255])
        mask = cv2.inRange(HSV, LowerYellow, UpperYellow)#进行黄色的区分
        YellowThings = cv2.bitwise_and(img, img, mask=mask)
        res = cv2.bitwise_or(BlueThings, YellowThings)  # 黄色内容和蓝色内容取交集的结果
        # 转化为灰度图
        res_gray = cv2.cvtColor(res, cv2.COLOR_RGB2GRAY)
        retval, res_gray = cv2.threshold(res_gray, 20, 255, cv2.THRESH_BINARY)  # 二值化方法

        # 进行边缘检测
        tmp = str0 + str(tt) + ".jpg"
        img_color = cv2.imread(tmp)

        row, col, x = img_color.shape
        img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)#转化为灰度图
        # img_gray=grey_scale(img_gray)对比度拉伸

        img_gray = cv2.medianBlur(img_gray, 5)  # 中值滤波,去除椒盐噪声

        # gaussianResult = cv2.GaussianBlur(img_gray, (5, 5), 1.5)  # 高斯模糊
        # img_gray = cv2.equalizeHist(img_gray)  # 直方图均衡化

        x = cv2.Sobel(img_gray, cv2.CV_16S, 1, 0, ksize=3)  # sobel算子
        y = cv2.Sobel(img_gray, cv2.CV_16S, 0, 1, ksize=3)
        #laplacian = cv2.Laplacian(img_gray, cv2.CV_16S)
        absX = cv2.convertScaleAbs(x)  # 转回uint8
        absY = cv2.convertScaleAbs(y)
        #laplacian = cv2.convertScaleAbs(laplacian)
        img_gray = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
        '''plt.imshow(res_end, cmap='gray')
        plt.axis('off')
        plt.show()'''

        retval, img_gray = cv2.threshold(img_gray, 40, 255, cv2.THRESH_BINARY)  # 二值化方法


        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))
        img_gray = cv2.dilate(img_gray, kernel, iterations=1)# 膨胀

        img_gray = cv2.erode(img_gray, kernel)#腐蚀
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)#开运算
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)

        # 边缘检测结果和颜色的结果取交集
        res_end = cv2.bitwise_and(img_gray, res_gray)
        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (17, 17))
        res_end = cv2.dilate(res_end, kernel, iterations=1)#膨胀
        res_end=kuang(res_end,img)
        dire = "res/canon/" + str(tt) + ".jpg"
        cv2.imwrite(dire, res_end)



    for tt in range(1, 30):#hp_recorder数据集操作
        str1_tmp=str1
        if tt>=1 and tt<=9:
            str1_tmp=str1_tmp+"0"
        image = str1_tmp + str(tt) + ".jpg"
        img = cv2.imread(image)#读取图像
        HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)#转化为HSV空间
        H, S, V = cv2.split(HSV)
        LowerBlue = np.array([100, 100, 50])
        UpperBlue = np.array([130, 255, 255])

        mask = cv2.inRange(HSV, LowerBlue, UpperBlue)#选择出蓝色区域
        BlueThings = cv2.bitwise_and(img, img, mask=mask)
        LowerYellow = np.array([15, 150, 150])
        UpperYellow = np.array([30, 255, 255])
        mask = cv2.inRange(HSV, LowerYellow, UpperYellow)#选择出黄色区域
        YellowThings = cv2.bitwise_and(img, img, mask=mask)
        res = cv2.bitwise_or(BlueThings, YellowThings)  # 黄色内容和蓝色内容取交集的结果
        # 转化为灰度图
        res_gray = cv2.cvtColor(res, cv2.COLOR_RGB2GRAY)
        retval, res_gray = cv2.threshold(res_gray, 20, 255, cv2.THRESH_BINARY)  # 二值化方法

        # 进行边缘检测
        tmp = str1_tmp + str(tt) + ".jpg"
        img_color = cv2.imread(tmp)

        row, col, x = img_color.shape
        img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)#转化为灰度图
        # img_gray=grey_scale(img_gray)对比度拉伸

        img_gray = cv2.medianBlur(img_gray, 5)  # 中值滤波,去除椒盐噪声

        # gaussianResult = cv2.GaussianBlur(img_gray, (5, 5), 1.5)  # 高斯模糊
        # img_gray = cv2.equalizeHist(img_gray)  # 直方图均衡化

        x = cv2.Sobel(img_gray, cv2.CV_16S, 1, 0, ksize=3)  # sobel算子
        y = cv2.Sobel(img_gray, cv2.CV_16S, 0, 1, ksize=3)
        laplacian = cv2.Laplacian(img_gray, cv2.CV_16S)
        absX = cv2.convertScaleAbs(x)  # 转回uint8
        absY = cv2.convertScaleAbs(y)
        laplacian = cv2.convertScaleAbs(laplacian)
        img_gray = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)


        retval, img_gray = cv2.threshold(img_gray, 40, 255, cv2.THRESH_BINARY)  # 二值化方法


        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))  # 膨胀
        img_gray = cv2.dilate(img_gray, kernel, iterations=1)

        img_gray = cv2.erode(img_gray, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)#开运算
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)

        # 边缘检测结果和颜色的结果取交集
        res_end = cv2.bitwise_and(img_gray, res_gray)
        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (17, 17))
        res_end = cv2.dilate(res_end, kernel, iterations=1)#膨胀
        res_end = kuang(res_end, img)
        dire = "res/hp_recorder/" + str(tt) + ".jpg"
        cv2.imwrite(dire, res_end)

    for tt in range(119, 155):#iPhone_5s数据集操作
        image = str2 + str(tt) + ".jpg"
        img = cv2.imread(image)#读取图像
        HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)#转化为HSV空间
        H, S, V = cv2.split(HSV)
        LowerBlue = np.array([100, 100, 50])
        UpperBlue = np.array([130, 255, 255])

        mask = cv2.inRange(HSV, LowerBlue, UpperBlue)#选择出蓝色区域
        BlueThings = cv2.bitwise_and(img, img, mask=mask)
        LowerYellow = np.array([15, 150, 150])
        UpperYellow = np.array([30, 255, 255])
        mask = cv2.inRange(HSV, LowerYellow, UpperYellow)#选择出黄色区域
        YellowThings = cv2.bitwise_and(img, img, mask=mask)
        res = cv2.bitwise_or(BlueThings, YellowThings)  # 黄色内容和蓝色内容取交集的结果
        # 转化为灰度图
        res_gray = cv2.cvtColor(res, cv2.COLOR_RGB2GRAY)
        retval, res_gray = cv2.threshold(res_gray, 20, 255, cv2.THRESH_BINARY)  # 二值化方法

        # 进行边缘检测
        tmp = str2 + str(tt) + ".jpg"
        img_color = cv2.imread(tmp)

        row, col, x = img_color.shape
        img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)
        # img_gray=grey_scale(img_gray)对比度拉伸

        img_gray = cv2.medianBlur(img_gray, 5)  # 中值滤波,去除椒盐噪声

        # gaussianResult = cv2.GaussianBlur(img_gray, (5, 5), 1.5)  # 高斯模糊
        # img_gray = cv2.equalizeHist(img_gray)  # 直方图均衡化

        x = cv2.Sobel(img_gray, cv2.CV_16S, 1, 0, ksize=3)  # sobel算子
        y = cv2.Sobel(img_gray, cv2.CV_16S, 0, 1, ksize=3)
        laplacian = cv2.Laplacian(img_gray, cv2.CV_16S)
        absX = cv2.convertScaleAbs(x)  # 转回uint8
        absY = cv2.convertScaleAbs(y)
        laplacian = cv2.convertScaleAbs(laplacian)
        img_gray = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)

        retval, img_gray = cv2.threshold(img_gray, 40, 255, cv2.THRESH_BINARY)  # 二值化方法

        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))  # 膨胀
        img_gray = cv2.dilate(img_gray, kernel, iterations=1)

        img_gray = cv2.erode(img_gray, kernel)#腐蚀
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)#开运算
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)
        img_gray = cv2.morphologyEx(img_gray, cv2.MORPH_CLOSE, kernel)

        # 边缘检测结果和颜色的结果取交集
        res_end = cv2.bitwise_and(img_gray, res_gray)

        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))
        res_end = cv2.morphologyEx(res_end, cv2.MORPH_CLOSE, kernel)#开运算
        res_end = cv2.dilate(res_end, kernel, iterations=1)#膨胀
        res_end = cv2.morphologyEx(res_end, cv2.MORPH_CLOSE, kernel)
        res_end = cv2.dilate(res_end, kernel, iterations=1)
        res_end = cv2.dilate(res_end, kernel, iterations=1)
        res_end = cv2.morphologyEx(res_end, cv2.MORPH_CLOSE, kernel)

        res_end = kuang(res_end, img)
        dire = "res/iPhone_5s/"+ str(tt) + ".jpg"
        cv2.imwrite(dire, res_end)

 

2019-12-20 10:36:34 rong11417 阅读数 306

目录

1.介绍

2.模拟图像处理

3.数字图像处理

4.什么是图像

5.数字图像和信号之间的关系

信号

关系

6.如何形成数字图像

7.应用

机器/计算机视觉

计算机图形学

人工智能

信号处理


1.介绍

数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。   数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。

信号处理是电气工程和数学领域的一门学科,处理模拟和数字信号的分析和处理,并处理信号的存储,滤波和其他操作。这些信号包括传输信号,声音或语音信号,图像信号和其他信号等

在所有这些信号中,处理信号类型的字段是在图像处理中完成的,对于该信号,输入是图像,而输出也是图像。顾名思义,它处理图像处理。

它可以进一步分为模拟图像处理和数字图像处理。

2.模拟图像处理

模拟图像处理是对模拟信号进行的。它包括对二维模拟信号的处理。在这种类型的处理中,通过改变电信号通过电手段来操纵图像。常见的例子包括电视图像。

随着时间的流逝,数字图像处理已超过模拟图像处理,这是由于其应用范围更广。

3.数字图像处理

数字图像处理涉及开发对数字图像执行操作的数字系统。

4.什么是图像

图像不过是二维信号。它由数学函数f(x,y)定义,其中x和y是水平和垂直两个坐标。

任意点的f(x,y)值给出了图像该点的像素值。

上图是您现在在计算机屏幕上查看的数字图像的示例。但实际上,该图像不过是二维数组,其范围是0到255之间的数字。

128 30 123
232 123 321
123 77 89
80 255 255

每个数字在任何点都代表函数f(x,y)的值。在这种情况下,值128、230、123分别表示单个像素值。图片的尺寸实际上就是这个二维数组的尺寸。

5.数字图像和信号之间的关系

如果图像是二维阵列,那么它与信号有什么关系?为了了解这一点,我们需要首先了解什么是信号?

信号

在物理世界中,可以将随时间在空间上或任何更高维度上可测量的任何数量视为信号。信号是一种数学函数,它传达一些信息。

信号可以是一维或二维或更高维的信号。一维信号是随时间测量的信号。常见的例子是语音信号。

二维信号是在其他一些物理量上测得的信号。二维信号的示例是数字图像。在下一个教程中,我们将详细介绍如何形成和解释一维或二维信号以及更高的信号。

关系

由于在两个观察者之间的物理世界中传达信息或广播消息的任何事物都是信号。这包括语音或(人声)或图像作为信号。自从我们讲话时,我们的声音就转换为声波/信号,并根据与之交谈的时间而改变。不仅如此,而且数码相机的工作方式(例如从数码相机获取图像时)都涉及将信号从系统的一部分传输到另一部分。

6.如何形成数字图像

由于从相机捕获图像是一个物理过程。阳光被用作能源。传感器阵列用于图像的采集。因此,当阳光照射到物体上时,传感器会感应到该物体反射的光量,并通过感应到的数据量生成连续的电压信号。为了创建数字图像,我们需要将该数据转换为数字形式。这涉及采样和量化。(它们将在后面讨论)。采样和量化的结果导致二维数组或数字矩阵,它们不过是数字图像。

7.应用

机器/计算机视觉

机器视觉或计算机视觉处理开发的系统,其中输入是图像,输出是某些信息。例如:开发一个扫描人脸就可以支付的系统。这个系统看起来像这样。

计算机图形学

计算机图形学处理对象模型中图像的形成,然后由某些设备捕获图像。例如:对象渲染。从对象模型生成图像。这样的系统看起来像这样。

人工智能

人工智能或多或少是将人类智能纳入机器的研究。人工智能在图像处理中有许多应用。例如:开发计算机辅助诊断系统,以帮助医生解释X射线,MRI等图像,然后突出显示要由医生检查的明显部分。

信号处理

信号处理是一个保护伞,而图像处理则位于其中。物体在物理世界(3d世界)中反射的光量穿过相机的镜头,并成为2d信号,因此导致图像形成。然后使用信号处理方法将该图像数字化,然后在数字图像处理中操纵此数字图像。

2014-10-12 13:25:40 wozhendebuhaoma 阅读数 2788

图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。

图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。

图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。

http://zhidao.baidu.com/question/519528446090102645.html

http://zhidao.baidu.com/question/391593318895377005.html

http://zhidao.baidu.com/question/617082845639831412.html

http://zhidao.baidu.com/question/1946820750805557828.html

http://zhidao.baidu.com/question/1702286530212076180.html

http://zhidao.baidu.com/question/1238528588771891699.html

http://zhidao.baidu.com/question/1238528652585891459.html

http://zhidao.baidu.com/question/2010245200610808468.html

http://zhidao.baidu.com/question/2010308752180544028.html

http://zhidao.baidu.com/question/1238592204736973419.html

http://zhidao.baidu.com/question/2010309201259490868.html

http://zhidao.baidu.com/question/680698400065462692.html

http://zhidao.baidu.com/question/455208937458346285.html

http://zhidao.baidu.com/question/1860437354781339187.html

http://zhidao.baidu.com/question/1238656589677680619.html

http://zhidao.baidu.com/question/1238656653749463099.html

http://zhidao.baidu.com/question/680698721128169452.html

http://zhidao.baidu.com/question/1860437611195301507.html

http://zhidao.baidu.com/question/1860437674878353067.html


数字图像处理

阅读数 1803

没有更多推荐了,返回首页