张江
关键词:OpenCV技术;计算机;图像识别设计
0 引言
计算机图像识别技术频繁应用在制药、电子产品生产、智能终端制造等领域[1]。在图像识别的早期技术中,由于技术限制,不仅识别精度低而且受到多种因素的影响。随着计算机图像识别技术的不断成熟,基于OpenCV技术的图像识别达到了更高的精度,具有良好的隐蔽性。不仅能够提高图像的识别精度,而且扩大了应用范围[2]。本文研究利用OpenCV技术设计计算机图像识别,在充分运用相关技术工具的基础上,使计算机图像识别技术的实际应用成为可能,这一点非常重要。在此背景下,本文使用OpenCV技术设计计算机图像识别方案,希望能为计算机图像识别技术的应用发展提供有效参考。
1 计算机图像识别技术
计算机图像识别技术就是借助于计算机技术将研究对象根据其特征进行识别和分类的过程[3]。随着实践活动的不断丰富,需要进行图像识别的内容越来越复杂,但对于图像识别技术而言,无论是数据还是信号都可以借助于计算机技术完成图像识别和分类任务,如图1所示。
计算机图像处理包括彩色和黑白照片,其中彩色照片表示随空间坐标(x,y) ,光线的波长u 随时间t 发生变化,其光线图像函数可以表示为:I = f (x,y,u,t)。对于灰度图像,其函数可以表示为:I = f (x,y )。本文中计算机图像识别算法主要进行图片和视频的识别设计。
2 计算机图像识别系统规划和技术处理
计算机图像识别根据其构成可以分为系统规划和技术处理两部分,在进行技术处理之前,需要明确整个系统的规划流程,保证系统的稳定性。
2.1 计算机图像识别系统规划
计算机图像识别系统主要包括三个工作:图像采集、图像识别和结果输出。其中,图像采集是系统的输入模块,主要為图像识别提供图像数据;图像识别是在图像数据的基础上通过算法运算识别结果的过程;图像输出就是对运算结果进行系统控制[4]。其对应的框架图如图2所示。
1) 使用OpenCV进行计算机图像识别处理,需要准备必要的资源。采用FPGA作为核心不仅能够满足图像采集的需求,而且方便电路设计,降低系统设计难度。同时,又增加了SRAM扩充功能,能够实现预处理算法,保存图像数据。
2) DSP作为一种尖端信号处理技术,不仅能够实现视频、图像和数据的信号处理,而且能够提供控制服务。主要包括:微信号结构、动态电源管理、高度并行的计算单元、高性能地址产生器、极佳的代码密度、视频指令、分层结构内存,并且具有双内核,在1.5V工作电压状态下能够提供高性能处理。
3) 显示输出模块设计相对简单,其接口直接连接图像采集板,结果直接展现在LCD上,由DSP控制,使用GPIO输出连接。在具体设计中,采用标准单排连接到DSP扩展口P2对应的IO引脚,实现DSP和LCD 的展示连接。
2.2 计算机图像识别系统技术处理
开展基于OpenCV的计算机图像识别需先准备相关基础设施。本文采用Python语言开发应用系统,通过Anaconda3和PyCharm集成开发环境,内置大量开发工具库,无须单独设置Python环境和下载工具[5]。
首先,需要安装Anaconda3。下载Anaconda3 安装包后,严格按照安装向导完成安装过程。安装结束后,打开Anaconda Prompt命令行窗口,输入cd命令查看Scripts目录,使用Python代码测试Anaconda3是否正常工作。测试成功后,继续安装opencv-python和opencv-contrib-python,检查OpenCV 组件是否正确运行。
其次,安装PyCharm开发环境。下载PyCharm安装包后,依照安装向导安装。在解析项目时,PyCharm 默认会选择Anaconda3的python.exe作为解析器,如有需要可自行更改解析器。
在PyCharm中可以更轻松调试和运行OpenCV程序,也可利用Version Control等功能进行代码管理和协作。Anaconda3提供的Spyder IDE同样具备调试功能,不过相比PyCharm会略显单一,需要手动管理外部依赖和环境。总体而言,Anaconda3+PyCharm是进行OpenCV开发和学习的较为理想的选择。
3 计算机图像识别算法的设计与实现
3.1 模板图像匹配
模块匹配主要是将图像中的某种特征作为模板,运用移动图像算法进行相关运算,确定被识别图像的特征或目标位置。其原则就是通过相关数学函数计算以找到其被搜索的位置。假设模板T在搜索图S上平移,被覆盖的那块搜索图叫作子图Sij,i 和j 为子图在S图中的坐标,称为参考点。S的范围为P*Q,T的范围为M*N,由图3可知,i 的取值范围为1≤i≤Q-N+1,j的取值范围为1≤j≤P-M+1。
3.2 图像识别与处理
图像识别算法实现的具体流程如图4所示。经过图像预处理和图像特征提取等操作以后,将获取的数据特征提交给OpenCV技术模块,进行结果输出。
4 总结
分析结果表明,OpenCV技术在计算机视觉的应用范围内前景广阔,能够突破传统计算机视觉所面临的技术障碍。文章通过对图像进行预处理、图像获取、图像识别等过程进行协同,基于OpenCV技术设计的计算机图像识别能够有效准确地进行图像识别。不仅降低了运算量,而且提高了识别速度,为计算机行业图像识别技术的进一步发展提供参考。