OpenCV

OpenCV中访问图像像素的三种方法

OpenCV中访问图像像素的方法有三种:(1)指针访问像素:C操作符[];(2)迭代器操作图像像素;(3)动态地址计算方式访问像素:at。下面举例介绍其用法。

(1)指针访问像素:该方法是三种方法中速度最快的。Mat类提供的ptr函数可以得到图像任意行的首地址。自己所做测试时间:0.00278972秒。
for(int i = 0;i < rowNumber;i++)
{
uchar* data = OutputArray.ptr(i);
for(int j = 0;j < colNumber;j++)
{
data[j] = .....;
}
}

(2)迭代器操作图像像素:获得图像矩阵的begin和end,增加迭代从begin到end。将*操作符添加在迭代指针前,即可访问当前指向的内容。相比用指针直接访问可能出现越界问题,迭代器绝对安全。自己所做测试时间:0.123954秒。
Mat_::iterator itBegin = OutputArray.begin(); // 初始位置的迭代器
Mat_::iterator itEnd = OutputArray.end(); // 终止位置的迭代器

Zedboard安装与移植OpenCV

参照《嵌入式系统软硬件协同设计实战指南》这本书第十三章13.5 OpenCV移植与sanwan的一篇博客中的相关内容;

主要分为两个大部分,OpenCV在PC Ubuntu上的安装和OpenCV在Zedboard上的移植。

一、OpenCV在PC Ubuntu上的安装

采用的是Ubuntu 14.04系统,在OpenCV官网下载的源码版本为2.3.1

1. 安装第三方库

获取su权限进行操作。安装第三方库,命令如下:
apt-get install build-essential
apt-get install cmake cmake-gui
apt-get install libgtk2.0-dev
apt-get install libavcodec-dev libavformat-dev libswscale-dev
apt-get install libdc1394-22-dev
apt-get install libjpeg-dev libpng-dev libtiff-dev libjasper-dev

2. 新建安装文件夹

将OpenCV解压到自建目录/home/linux/OpenCV-2.3.1下,新建目标build。这是个临时文件夹,安装完成后可以删除。

进入build目录。进行命令配置:

OpenCV库正被广泛地应用于算法原型设计,许多业界领先的厂商和计算机视觉研究机构都在使用。FPGA 可以为复杂的算法提供无与伦比的计算效率的优势,比如密集光流算法和立体视觉算法等,同时,功耗仅只有几瓦而已。然而,想要获得这一巨大优势,往往需要硬件设计专长,比如Verilog 或VHDL 语言的使用,这增加了开发难度。在本次研讨会当中,赛灵思展示了一种全新的方法,该方法可以使对硬件设计不太熟悉的设计者轻松而方便地释放FPGA 硬件加速的优势,比如利用经过硬件调优的OpenCV库,完全类似CC++ 的开发环境,以及随时可用的硬件开发平台等。

作为地球上最具性价比的嵌入式视觉应用开发平台,Digilent Zybo-Z7 去年一经推出,就凭借华丽丽升级的Zynq器件与各种板载外设接口,俘获了众多Zynq爱好者的芳心。这还不算这一业界标杆性的入门级Zynq-7000平台还免费附赠SDSoC Vochuer!

这一赠可谓激起千层浪,对于垂涎SDSoC已久的Digilent社区用户而言,识货者此等福利当然不会错过。然,作为版主,在下也因此收到了不少关于SDSoC开发的问题。继上一篇我们聊了聊“如何在Zynq开发板上入门SDSoC开发工具”,为响应Digilent开源社区用户的需求,今天我们就再来一发「SDSoC勾搭OpenCV指南」,教你如何用Zybo-Z7创建一个基于OpenCV的SDSoC项目。

在开篇之前提醒一下:
1. 在本教程中,使用的SDSoC版本是2015.4。
2. OpenCV要求Linux易于使用,因为它会使用到许多库,例如pthread...本文中不会介绍任何裸机配置方面的内容。

1. 软硬件清单
● SDSoC
● Zybo Z7
● 包含Linux内核+根文件系统的平台
● 装有Linux系统的计算机

2. 获取OpenCV

PC平台:WINDOWS 10 64位 + 虚拟机Ubuntu 14.04

Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4

开发板:ZedBoard

USB摄像头:罗技 C270(720P)

Linux源码:2016_R1

Linaro文件系统:linaro-vivid-developer-20150618-705.tar.gz

QT库:qt-everywhere-opensource-src-4.7.3.tar.gz

openCV: opencv-3.1.0

PC平台:WINDOWS 10 64位 + 虚拟机Ubuntu 14.04

Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4

开发板:ZedBoard

USB摄像头:罗技 C270(720P)

Linux源码:2016_R1

Linaro文件系统:linaro-vivid-developer-20150618-705.tar.gz

QT库:qt-everywhere-opensource-src-4.7.3.tar.gz

openCV: opencv-3.1.0

Xilinx OpenCV用户指南

本文档介绍了FPGA设备优化的OpenCV库,称为Xilinx®xfOpenCV库,适用于使用Zynq®-7000 All的应用程序开发人员可编程SoC和Zynq UltraScale +™MPSoC器件。OpenCV 库函数对于开发大量计算机视觉应用至关重要。Xilinx xfOpenCV 基于 OpenCV 函数的计算机视觉库将帮助您通过SDx 或 HLx 环境在 FPGA 架构下轻松构建和加速计算机视觉功能。此外,xfOpenCV库函数不仅与 OpenCV 一致,而且还针对性能、资源利用和易用性进行了优化。

Zynq-7000学习笔记(十四)——移植openCV

PC平台:WINDOWS 10 64位 + 虚拟机Ubuntu 14.04

开发板:ZedBoard

openCV: opencv-3.1.0.zip

opencv的编译很简单,不需要特别注意什么,先准备一个xilinx.cmake文件

set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc )
set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ )
set( CMAKE_INSTALL_PREFIX /home/luotong/working/opencvlib)

进入opencv-3.1.0目录,创建并进入build目录

OpenCV库正被广泛地应用于算法原型设计,许多业界领先的厂商和计算机视觉研究机构都在使用。FPGA 可以为复杂的算法提供无与伦比的计算效率的优势,比如密集光流算法和立体视觉算法等,同时,功耗仅只有几瓦而已。然而,想要获得这一巨大优势,往往需要硬件设计专长,比如Verilog 或VHDL 语言的使用,这增加了开发难度。在本次研讨会当中,赛灵思将要向您展示一种全新的方法,该方法可以使对硬件设计不太熟悉的设计者轻松而方便地释放FPGA 硬件加速的优势,比如利用经过硬件调优的OpenCV库,完全类似CC++ 的开发环境,以及随时可用的硬件开发平台等。研讨会结束还有与专家的在线问答环节可以解答您的疑问。

时 间:2017年08月24日 10:00--12:00

专家介绍:罗霖(赛灵思亚太区工业医疗市场高级经理)

机器学习的应用正迅速地扩展至越来越多的终端市场,在用户端、在云端或者在那些基于端处理与基于云的数据分析相结合的混合解决方案中。传统方案正面临实时计算能力,功耗等的挑战。领先的系统开发商正在新一代视觉导向机器学习系统中使用全可编程系统。本次公开课详细介绍了赛灵思公司的 reVISION™ 堆栈。它包含了从开发套件到设计工具和 IP 库在内的整套解决方案,能够让没有或者很少硬件设计专业知识的嵌入式软件和系统工程师也能利用赛灵思的技术更轻松、更快速地开发视觉导向的机器学习应用。

点击下载公开课PPT课件资料《用reVISION加速OpenCV和深度学习开发》

同步内容