欢迎来到天天文库
浏览记录
ID:52166144
大小:1.36 MB
页数:11页
时间:2020-03-23
《基于opencv对图像的预处理.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于opencv实现对图像的的预处理基于opencv对图像的预处理1.问题描述本次设计是基于opencv结合c++语言实现的对图像的预处理,opencv是用于开发实时的图像处理、计算机视觉及模式识别程序;其中图像的预处理也就是利用opencv对图像进行简单的编辑操作;例如对图像的对比度、亮度、饱和度进行调节,同时还可以对图像进行缩放和旋转,这些都是图像预处理简单的处理方法;首先通过opencv加载一幅原型图像,显示出来;设置五个滑动控制按钮,当拖动按钮时,对比度、亮度、饱和度的大小也会随之改变,也可以通过同样的方式调节缩放的比例和旋转的角度,来控制图像,
2、对图像进行处理,显示出符合调节要求的图像,进行对比观察他们的之间的变化。2.模块划分此次设计的模块分为五个模块,滑动控制模块、对比度和亮度调节模块、饱和度调节模块、缩放调节模块、旋转调节模块,他们之间的关系如下所示:调用调用调用调用滑动控制模块对比度和亮度调节模块饱和度调节模块缩放调节模块旋转调节模块图一、各个模块关系图11基于opencv实现对图像的的预处理滑动控制模块处于主函数之中,是整个设计的核心部分,通过createTrackbar创建五个滑动控制按钮并且调用每个模块实现对图像相应的调节。1.算法设计(1)滑动控制:滑动控制是整个设计的核心部分,
3、通过创建滑动控制按钮调节大小来改变相应的数据,进行调用函数实现对图像的编辑,滑动控制是利用createTrackbar(),函数中包括了滑动控制的名称,滑动控制显示在什么窗口上,滑动变量的地址和它调节的最大范围,以及每个控制按钮应该调用什么函数实现什么功能;(2)对比度和亮度的调节:对比度和亮度的调节的原理是依照线性理论,它的公式如下所示:g(x)=a*f(x)+b,其中f(x)表示源图像的像素,g(x)表示输出图像的像素,参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度,参数b通常被称为偏置(bias),常常被用来控制图像的亮
4、度;(3)饱和度的调节:饱和度调节利用cvCvtColor(src_image,dst_image,CV_BGR2HSV)将RGB颜色空间转换为HSV颜色空间,其中“H=Hue”表示色调,“S=Saturation”表示饱和度,“V=Value”表示纯度;所以饱和度的调节只需要调节S的大小,H和V的值不需要做任何的改变;(4)旋转的调节:旋转是以某参考点为圆心,将图像的个点(x,y)围绕圆心转动一个逆时针角度θ,变为新的坐标(x1,y1),x1=rcos(α+θ),y1=rsin(α+θ),其中r是图像的极径,α是图像与水平的坐标的角度的大小;(5)缩放
5、的调节:首先得到源图像的宽度x和高度y,变换后新的图像的宽度和高度分别为x1和y1,x1=x*f,y1=y*f,其中f是缩放因子;4.函数功能描述(1)11基于opencv实现对图像的的预处理主函数main()用来设置滑动控制按钮,当鼠标拖动按钮可以得到相应的数据大小,实现手动控制的功能,当鼠标拖动对比度和亮度调节是,主函数调用对比度和亮度调节函数,类似这样分别对每个功能模块实现调用;(1)对比度和亮度调节函数ContrastAndBright(),当鼠标拖动对比度和亮度时将对比度和亮度的值传递给ContrastAndBright(),实现对图片的对比度
6、和亮度的控制,并创建一个对比度和亮度显示窗口,将图像显示出来;(2)饱和度调节函数Statiate(),当鼠标拖动饱和度控制条将值从0~512时,饱和度的值就会传递给Statiate(),图像的饱和度就会随控制条变化而变化,将变化后图像显示在饱和度窗口上;(3)旋转函数Rotate(),旋转的角度变化范围是0~360,在Rotate()中创建一个旋转图像显示窗口,当拖动鼠标改变旋转角度的变化,图像也会发生旋转;(4)缩放函数Zoom(),缩放的范围是0~2,当缩放因为小于1时表示图像的缩小,当缩放因子大于1时,表示图像的放大,将缩放的图像显示在创建的缩放
7、图像的窗口上;5.详细设计整个设计函数之间的的关系如下所示:Main()createTrackbar()ContrastAndBright()Statiate()Rotate()Zoom()图二、函数关系图11基于opencv实现对图像的的预处理利用include加载整个程序需要的库函数;定义相应的字符串变量、整形变量和指针变量并给他们赋初值;以下是整个设计中函数设计和运行的结果:(1)main()利用imread和cvLoadImage从文件夹中加载图像,运用if判断语句看是否读入图像成功,如过读入图像没有成功,则退出程序,如果读入图像成功则利用nam
8、eWindow创建并命名为原始图、滑动控制和对比度和亮度窗口,然后将图像显示在特
此文档下载收益归作者所有