1、下载并构建OpenCV的最新CVS更新。
若要获取 OpenCV 的最新 CVS 更新,不同系统操作不同。
在 Windows 上,若想从 CVS 仓库获取最新的 OpenCV,需要访问 CVSROOT 目录:
:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:2401/cvsroot/opencvlibrary
在 Linux 上,可使用以下两个命令:
- 首先执行登录命令:
cvs -d:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:/cvsroot/opencvlibrary login
当提示输入密码时,直接按回车键。
- 然后执行检出命令:
cvs -z3 -d:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:/cvsroot/opencvlibrary co -P opencv
2、进入 …/opencv/_make 目录。在 Windows 系统上,打开解决方案文件 opencv.sln;在 Linux 系统上,打开相应的 makefile。分别构建调试版和发布版的库。描述这个操作的过程和结果。
该操作是在不同系统上构建 OpenCV 库的步骤。
-
Windows 系统:
进入…/opencv/_make目录后,打开opencv.sln文件来构建库。 -
Linux 系统:
进入…/opencv/_make目录后,打开相应的makefile文件进行构建。
构建过程会生成调试版和发布版的库文件及 DLL 文件,不过构建可能耗时较久。
3、进入 …/opencv/samples/c/ 目录。创建一个项目或生成文件,然后导入并编译 lkdemo.c(这是一个示例运动跟踪程序)。将摄像头连接到系统并运行代码。选中显示窗口后,输入 “r” 初始化跟踪。可以通过鼠标点击视频画面添加跟踪点。还可以通过输入 “n” 切换到只查看跟踪点(不显示图像)的模式。再次输入 “n” 可以在 “夜间” 和 “日间” 视图之间切换。请描述完成上述操作的步骤。
请按照以下步骤操作:
- 打开终端,进入
…/opencv/samples/c/目录; - 创建项目或生成文件;
- 导入
lkdemo.c文件; - 编译
lkdemo.c文件; - 将摄像头连接到系统;
- 运行编译后的程序;
- 选中显示窗口,输入 “r” 初始化跟踪;
- 通过鼠标点击视频画面添加跟踪点;
- 输入 “n” 切换到只查看跟踪点的模式;
- 再次输入 “n” 在 “夜间” 和 “日间” 视图之间切换。
4、练习使用感兴趣区域(ROI)。创建一个210×210的单通道字节图像并将其置零。在该图像内,使用ROI和cvSet()构建一个值递增的金字塔。即:最外层边框值应为0,下一层内边框值应为20,再下一层内边框值应为40,依此类推,直到最内层正方形的值设置为200;所有边框宽度应为10像素。显示该图像。
以下是使用OpenCV实现该需求的Python代码示例:
import cv2
import numpy as np
# 创建一个210x210的单通道字节图像并置零
image = np.zeros((210, 210), dtype=np.uint8)
# 定义边框宽度
border_width = 10
# 定义初始值
value = 0
# 构建金字塔
for i in range(10):
start = i * border_width
end = 210 - i * border_width
roi = image[start:end, start:end]
cv2.rectangle(image, (start, start), (end, end), value, -1)
value += 20
# 显示图像
cv2.imshow('Pyramid Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
这段代码首先创建了一个210×210的单通道字节图像并将其置零。然后,通过循环逐步设置不同层次的边框值,每次循环增加20,直到最内层正方形的值为200。最后,显示生成的图像。
5、将处理的三个阶段显示在一张图像中。提示:创建另一个高度与视频帧相同,但宽度是视频帧三倍的图像。将图像复制到这个新图像中,可以使用指针,或者(更巧妙的方法是)创建三个新的图像头,分别指向图像数据的开头、三分之一处和三分之二处,然后使用cvCopy()函数。
可按以下步骤操作:
- 创建一个高度与视频帧相同、宽度为视频帧三倍的新图像;
- 可以选择使用指针或者创建三个新的图像头(分别指向图像数据的开头、三分之一处和三分之二处)的方式;
- 使用
cvCopy()函数将三个阶段处理后的图像复制到新创建的图像中。

最低0.47元/天 解锁文章
1268

被折叠的 条评论
为什么被折叠?



