OpenCV开发实战指南

1、下载并构建OpenCV的最新CVS更新。

若要获取 OpenCV 的最新 CVS 更新,不同系统操作不同。

在 Windows 上,若想从 CVS 仓库获取最新的 OpenCV,需要访问 CVSROOT 目录:

:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:2401/cvsroot/opencvlibrary

在 Linux 上,可使用以下两个命令:

  1. 首先执行登录命令:
cvs -d:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:/cvsroot/opencvlibrary login

当提示输入密码时,直接按回车键。

  1. 然后执行检出命令:
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” 可以在 “夜间” 和 “日间” 视图之间切换。请描述完成上述操作的步骤。

请按照以下步骤操作:

  1. 打开终端,进入 …/opencv/samples/c/ 目录;
  2. 创建项目或生成文件;
  3. 导入 lkdemo.c 文件;
  4. 编译 lkdemo.c 文件;
  5. 将摄像头连接到系统;
  6. 运行编译后的程序;
  7. 选中显示窗口,输入 “r” 初始化跟踪;
  8. 通过鼠标点击视频画面添加跟踪点;
  9. 输入 “n” 切换到只查看跟踪点的模式;
  10. 再次输入 “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()函数。

可按以下步骤操作:

  1. 创建一个高度与视频帧相同、宽度为视频帧三倍的新图像;
  2. 可以选择使用指针或者创建三个新的图像头(分别指向图像数据的开头、三分之一处和三分之二处)的方式;
  3. 使用 cvCopy() 函数将三个阶段处理后的图像复制到新创建的图像中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值