您好,欢迎访问三七文档
说明欢迎购买《OpenCV3编程入门》一书!本书有OpenCV2、OpenCV3两套独立的书本配套示例程序供选择使用。此为书本配套的OpenCV3示例程序源代码工程合集。开发测试环境为Windows764位旗舰版、VisualStuido2010、OpenCV3.0beta,理论上支持OpenCV3理论上支持目前已经发布的OpenCV3全版本编译运行。另有OpenCV2的详细注释的示例程序源代码工程、书本配套可独立运行的exe执行程序合集分别提供下载。PS:由于OpenCV3架构的更改,OpenCV3版的程序仅包含1-10章,第11章和附赠示例程序请参考OpenCV2版的示例程序源代码。配套示例程序清单本书含有4个部分11章,共有95个主线示例程序,为方便读者查阅和学习,总结成如下表格。表1配套示例程序清单示例程序序号程序说明对应章节1OpenCV环境配置的测试用例1.3.82快速上手OpenCV的第一个程序:图像显示1.4.13快速上手OpenCV的第二个程序:图像腐蚀1.4.24快速上手OpenCV的第三个程序:blur图像模糊1.4.35快速上手OpenCV的第四个程序:canny边缘检测1.4.46读取并播放视频1.5.17调用摄像头采集图像1.5.28官方例程引导、赏析之彩色目标跟踪:Camshift2.1.19官方例程引导、赏析之光流:opticalflow2.1.210官方例程引导、赏析之点追踪:lkdemo2.1.311官方例程引导、赏析之人脸识别:objectDetection2.1.412官方例程引导、赏析之支持向量机:支持向量机引导2.1.513官方例程引导、赏析之支持向量机:处理线性不可分数据2.1.514printf函数的用法示例2.6.2示例程序序号程序说明对应章节15用imwrite函数生成png透明图3.1.816综合示例程序:图像的载入、显示与输出3.1.917为程序界面添加滑动条3.2.118鼠标操作示例3.319基础图像容器Mat类的使用4.1.720用OpenCV进行基本绘图4.321操作图像中像素的方法一:用指针访问像素5.1.5、5.1.622操作图像中像素的方法二:用迭代器操作像素5.1.5、5.1.623操作图像中像素的方法三:动态地址计算5.1.5、5.1.624遍历图像中像素的14种方法5.1.625初级图像混合5.2.426多通道图像混合5.3.327图像对比度、亮度值调整5.4.328离散傅里叶变换5.5.829XML和YAML文件的写入5.6.330XML和YAML文件的读取5.6.431方框滤波:boxFilter函数的使用6.1.1132均值滤波:blur函数的使用6.1.1133高斯滤波:GaussianBlur函数的使用6.1.1134综合示例:图像线性滤波6.1.1235中值滤波:medianBlur函数的使用6.2.436双边滤波:bilateralFilter函数的使用6.2.437综合示例:图像滤波6.2.538膨胀:dilate函数的使用6.3.539腐蚀:erode函数的使用6.3.540综合示例:腐蚀与膨胀6.3.641用morphologyEx()函数实现形态学膨胀6.4.842用morphologyEx()函数实现形态学腐蚀6.4.843用morphologyEx()函数实现形态学开运算6.4.844用morphologyEx()函数实现形态学闭运算6.4.8示例程序序号程序说明对应章节45用morphologyEx()函数实现形态学梯度6.4.846用morphologyEx()函数实现形态学“顶帽”6.4.847用morphologyEx()函数实现形态学“黑帽”6.4.848综合示例:形态学滤波6.4.949漫水填充算法:floodFill函数6.5.350综合示例:漫水填充6.5.451尺寸调整:resize()函数的使用6.6.552向上采样图像金字塔:pyrUp()函数的使用6.6.653向下采样图像金字塔:pyrDown()函数的使用6.6.654综合示例:图像金字塔与图片尺寸缩放6.6.755示例程序:基本阈值操作6.7.356Canny边缘检测7.1.257Sobel算子的使用7.1.358Laplacian算子的使用7.1.459Scharr滤波器7.1.560综合示例:边缘检测7.1.661标准霍夫变换:HoughLines()函数的使用7.2.462累计概率霍夫变换:HoughLinesP()函数7.2.563霍夫圆变换:HoughCircles()函数7.2.864综合示例:霍夫变换7.2.965实现重映射:remap()函数7.3.366综合示例程序:实现多种重映射7.3.467仿射变换7.4.568直方图均衡化7.5.369轮廓查找8.1.370查找并绘制轮廓8.1.471凸包检测基础8.2.372寻找和绘制物体的凸包8.2.473创建包围轮廓的矩形边界8.3.674创建包围轮廓的圆形边界8.3.7示例程序序号程序说明对应章节75使用多边形包围轮廓8.3.876图像轮廓矩8.4.477分水岭算法的使用8.5.278实现图像修补8.6.279H-S二维直方图的绘制9.2.380一维直方图的绘制9.2.481RGB三色直方图的绘制9.2.582直方图对比9.3.283反向投影9.4.784模板匹配9.5.385实现Harris角点检测:cornerHarris()函数的使用10.1.486harris角点检测与绘制10.1.587Shi-Tomasi角点检测10.2.388亚像素级角点检测10.3.389SURF特征点检测11.1.690SURF特征提取11.2.391使用FLANN进行特征点匹配11.3.392FLANN结合SURF进行关键点的描述和匹配11.3.493SIFT配合暴力匹配进行关键点描述和提取11.3.594寻找已知物体11.4.395利用ORB算法进行关键点的描述与匹配11.5.4随书额外附赠的程序一览本书额外附赠了OpenCV2版的21个相较于正文主线的示例代码稍微复杂一些的程序源代码。现将本书附赠的21个示例程序的表格式总结清单列举如下:表2本书附赠程序清单程序序号示例名称说明1随机图形和文字生成示例(randomtext)此程序利用OpenCV中的各种绘制函数随机生成图形和文字,有一定的学习和研究价值。2生成彩色色条(gencolors)用法generateColors函数生成彩色色条并进行显示。3卡尔曼滤波(kalman)用OpenCV动态绘制卡尔曼滤波,运行程序后可直接得出动画效果。用键盘任意按键重置轨迹并更新速度。使用ESC键结束程序。4渐变过渡各种图形滤波(median_blur)渐变过渡效果的各种图形滤波的显示,并输出说明性文字到窗口中。5距离变换(distanceTransform)此程序用于演示边缘图像之间的距离变换。按键说明:【ESC】-退出程序【c】-使用C/Inf度量【1】-使用L1度量【2】-使用L2度量【3】-使用3x3的掩膜【5】-使用5x5的掩膜【0】-采用精确的距离变换【v】-切换到Voronoi图(Voronoidiagram)模式【p】-切换到基于像素的Voronoi图模式【SPACE】-在各种模式间切换6把图像映射到极指数空间(LogPolar)此程序用于把图像映射到极指数空间,操作说明如下:【n】-采用最邻近像素技术(nearestpixeltechnique)【b】-采用双线性插值技术(bilinearinterpolationtechnique)【o】-使用重叠的圆形的接受域(overlappingcircularreceptivefields)【a】-使用相邻的接受域(adjacentreceptivefields)7filter2D滤波器的用法用OpenCV中的filter2D滤波器来模糊一张图片,并将结果存储到“filtered_image.jpg”中8grabCut图像分割示例此程序演示了OpenCV中GrabCut图像分割的使用。程序运行后,我们需要用鼠标圈出需要分割的那部分物体。按键说明如下:【ESC】-退出程序【r】-恢复原始图片【n】-开始迭代,和进行下一次迭代【鼠标左键】-设置选中矩形区域【Ctrl+鼠标左键】-设置GC_BGD像素【Shift+鼠标左键】-设置CG_FGD像素【Ctrl+鼠标右键】-设置GC_PR_BGD像素【Shift+鼠标右键】-设置CG_PR_FGD像素9MeanShift图像分割示例此程序演示了OpenCV中MeanShift图像分割的使用。程序运行后我们可以通过3个滑动条调节分割效果。3个滑动条代表的参数分别为空间窗的半径(spatialRad)、色彩窗的半径(colorRad)、最大图像金字塔级别(maxPyrLevel)10用滑动控制图像直方图此程序结合滚动条的创建,演示了如何用calcHist来创建直方图。可以条件滚动条,看到不同形态的图像直方图11找到图像最小的封闭轮廓此程序结合了轮廓查找和多边形曲线精度逼近,来演示如何找到图像最小的封闭轮廓。运行程序即可观察出最终效果。12Retina特征点检测此程序用于演示Retina特征点检测,运行后会得到多幅运行效果图。13摄像头帧数检测此程序非常简单实用,用于调用摄像头采集图像,并显示当前采集的图像帧数。14视频截图此程序也是非常简单实用,用于读取视频并播放,在播放时,按下【Space】空格键可以截图,图片将存放在工程目录下,而【Esc】和【q】键可以退出程序。15对视频的快速角点检测此程序用于演示如何对视频进行快速角点检测。按键说明如下:【t】-抓取一个引用帧的进行匹配【l】-使引用更新每一帧视频【q】或【ESC】-退出程序16视频简单色彩检测此程序调用摄像头进行视频采集,输出实时帧率,进行简单色彩检测,并可以用滑动条控制R、G、B三个通道的高低阈值。17跟踪分割视频中运动的物体此程序演示了一种寻找轮廓,连接组件,清除背景的简单方法,实现跟踪分割视频中运动的物体。程序运行开始后,便开始“学习背景”,我们可以通过【Space】空格键来切换是否打开“背景学习”技术。18视频的直方图反向投影此程序用摄像头采集视频,并进行实时的直方图方向投影显示。19计算视频中两个图像区域的相此程序用摄像头采集视频,然后我们可以在视频上似度用鼠标选定两个矩形区域,然后OpenCV就会为我们算出图像区域的相似度数值,并绘制出RGB三色直方图。20视频前后背景分离此程序展示了视频前后背景分离的方法,程序首先会“学习背景”,然后进行分割。可以用过【Space】空格进行功能切换。21用高斯背景建模分离背景此程序展示了用高斯背景建模进行视频的背景分离方法,程序首先会“学习背景”,然后进行分割。可以用过【Space】空格进行功能切换。Enjoy~浅墨于2014年12月
本文标题:配套程序说明
链接地址:https://www.777doc.com/doc-2012572 .html