关于在RK3288上安装Opencv的方法

2023-10-26

Opencv是一个开源的计算机视觉库,可以给开发人员提供更便捷的方式设计复杂的视觉应用,Opencv主要是用c和c++编写,可以运行在Windows/Linux/Mac等上。这几天尝试着在RK3288上安装Opencv,被虐了好多遍,幸好没有放弃,终于弄出了。之前一直是通过电脑先交叉编译Opencv再移植的方法,但是在编译过程中总是遇到各种问题,换了不同的Opencv源又会出现新的问题,所以如果有交叉编译移植成功的朋友不妨交流一下。这里采用了一种比较折中的方法,直接在开发板上配置好环境,然后安装编译Opencv。

一、前期准备

开发板烧写的固件是官方网站下载的,Ubuntu的系统。

将开发板与电脑通过串口连接起来,方便命令控制。

在Opencv官方网站下载一个在linux下的Opencv源,我的是opencv-2.4.10.zip,放到开发板的/home下,http://opencv.org/downloads.html

二、环境配置

1、更新软件源

apt-get update

apt-get upgrade

2、下载依赖项

apt-get install gcc g++

apt-get install cmake

apt-get install build-essential

apt-get install libgtk2.0-dev

apt-get install pkg-config

apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

apt-get install python-dev python-numpy

3、解压缩

去到opencv源码所在文件夹下,(我的在/home目录下),解压缩

unzip opencv-2.4.10.zip

这时/home目录下多了一个文件夹,opencv-2.4.10

4、编译Opencv

cd /home/opencv-2.4.10

mkdir build

cd build/

使用cmake工具编译生成makefiel,指定opencv安装在/usr/local(这个安装目录最好不要改,如果要改也是弄成/usr/local/xx这种目录)

cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

等到环境检测完成

make

这时候就是等待安装,时间有点长,这时候可以放在那里干其他事情......


等到编译完毕,install一下让它生效

make install


可以看到在usr/local/lib下有很多编译好的opencv动态链接库


在环境变量文件上写库的位置
    vim /etc/ld.so.conf 

在这个文件的最后一行加上/usr/local/lib

然后运行/sbin/ldconfig

4、测试

写一个测试代码opencv.cpp,看opencv能否使用,这段代码的意思是将一幅图片转换成灰度图显示出来,并且显示出原图

#include<iostream>
   #include<opencv2/core/core.hpp>
   #include<opencv2/highgui/highgui.hpp>
   #include<opencv2/imgproc/imgproc.hpp>
   using namespace std;
  using namespace cv;
   int main(int argc,char **argv)
   {
     Mat img1,img2;
     img1 = imread(argv[1], CV_LOAD_IMAGE_COLOR);
     if(argc != 2 || !img1.data)
     {
       cout << "No image data\n";
       return -1;
     }
     cvtColor(img1, img2, CV_RGB2GRAY);
     namedWindow("img1", CV_WINDOW_AUTOSIZE);
     namedWindow("img2", CV_WINDOW_AUTOSIZE);
     imshow("img1", img1);
     imshow("img2", img2);
      waitKey(0);
      return 0;        

}   

生成可执行文件opencv

g++ `pkg-config opencv --cflags --libs opencv` -o opencv opencv.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_gpu -lopencv_ts -lopencv_video -lopencv_objdetect -lopencv_ml -lpthread 

开发板连上显示器,运行程序(下载一张图片弄到同一文件夹下)

./opencv lena.jpg

效果如下:


原文链接:http://dev.t-firefly.com/forum.php?mod=viewthread&tid=11482




更多开发资料请到社区精华系列“资源共享”专栏下载


http://dev.t-firefly.com/forum-263-1.html


——————————————— ————————————
 
         Firefly微信公众号                           阿Sai微博
——————————————— ————————————
Firefly官网:http://www.t-firefly.com
Firefly开源社区:http://developer.t-firefly.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于在RK3288上安装Opencv的方法 的相关文章

  • OpenCV作为JBoss-作为全局模块

    问题呈现 我尝试将 OpenCV 安装为 JBoss as 实例的全局模块 版本是 JBoss as 7 1 1 最终版 OpenCV 2 4 5 编译时支持 Java 我从全新安装 Ubuntu Server 12 04 64 位开始 仅
  • 使用 OpenCV 输出作为网络摄像头 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 所以 我想编写一个程序 使 OpenCV 处理后的输出被视为网络摄像头 我想用它为 Skype 等程序创
  • Eclipse + Ubuntu 箭头键和退格键不起作用

    我正在使用 Ubuntu 12 10 和 Eclipse Juno 这种情况经常发生 箭头键和退格键在编辑器中停止工作 解决该问题的唯一方法是重新启动计算机 重新启动 Eclipse 没有帮助 有人遇到过这个问题或者知道解决方案吗 谢谢 更
  • 为什么我应该使用 (y,x) 而不是 (x,y) 来访问 opencv 中的像素?

    我必须使用 openCV 访问图像中的像素 但一开始我无法访问 因为 python 告诉我我想要访问的值超出范围 然后我搜索了这个错误 我发现我应该使用访问像素image y x 代替image x y 我在这个页面的评论中找到了这条信息
  • Asift 和 openCV?

    opencv 允许使用 ASIFT 吗 http www ipol im pub algo my affine sift http www ipol im pub algo my affine sift 作者发布了c 所以我相信将其实现到o
  • OpenCV - 薄板样条翘曲的合适实现

    我有一张脸的形状以及该脸的重建 我想对初始形状的相应图像进行建模 基本上 我想将点从原始形状移动到面部重建指示的位置 我尝试通过使用薄板样条翘曲来做到这一点 它的实现如下 http ipwithopencv blogspot ro 2010
  • 模糊边缘检测

    我对图像处理和识别的背景知识很少 我正在尝试检测灰度图像 例如肖像 上的主要边缘 灰度过渡 问题是在某些部分 边缘模糊 因为焦点 我使用具有多个阈值的 Canny 边缘检测器 但我永远无法检测到这些边缘 下巴 衣服 耳朵 脸的侧面 Orig
  • 从 xargs 运行时,如何避免 sed 出现“无输入文件”错误?

    我有这个 shell 脚本来更新我的配置文件中的 IP 地址 任何匹配的 old address pattern必须改为 new address grep rl old address pattern etc xargs sed i s o
  • 在光流路径场周围创建边界框

    我用过cv calcOpticalFlowFarneback使用 openFrameworks 中的 ofxOpenCv 计算视频当前帧和前一帧中的光流 然后 我绘制顶部具有光流场的视频 然后绘制显示高于特定阈值的区域中的运动流的矢量 我现
  • 如何在我的 ubuntu 容器中安装 Docker?

    我在运行的容器内安装了 dockerubuntu 18 04要运行我的nodejs应用程序 我需要在这个容器内安装docker 因为我需要dockerize另一个小应用程序 她是我的 Dockerfile FROM ubuntu 18 04
  • Tflite-model-maker 正在无休止地下载多个文件

    我正在尝试使用此安装 TensorFlowtutorial https www tensorflow org lite models modify model maker image classification 因此 当我在终端上运行以下
  • 在 Linux 上构建适用于 Android 的 Ionic 应用程序失败,退出代码为 2:无法找到“ANDROID_HOME”

    我正在尝试在 Linux Ubuntu 14 04 上为 Android 构建一个默认示例应用程序 我在执行时收到标准错误消息sudo ionic 构建 android 找不到 ANDROID HOME 环境变量 尝试手动设置 请参阅下面的
  • 使用 rc.local 运行脚本:脚本有效,但在启动时无效

    我有一个需要在启动时启动的 node js 脚本and在 www data 用户下运行 在开发过程中 我总是以以下方式开始脚本 su www data c node var www php jobs manager js 我确切地看到发生了
  • 在ubuntu上构建php5.3.8,出现错误:configure:error:无法找到gmp.h

    我正在使用 ubuntu 13 10 x64 并且正在尝试构建 php 5 3 8 我下载了源代码并运行配置 configure enable fpm with fpm user www data with fpm group www da
  • 如何使用EMGU CV获取人脸识别的置信度值?

    我正在开发一个项目 其中我应该设计一个应用程序 可以检测路过的人的所有面孔 我有一个非常大的数据库 其中包含几个已知的人 我使用 EigenObjectRecognizer 来识别图像网络摄像头捕获的帧 但问题是有时它会错误地识别某些人 因
  • 如何在 Python 中使用 OpenCV 跟踪运动?

    我可以使用我的网络摄像头获取帧OpenCV http opencv willowgarage com wiki 在Python中 camshift 示例接近我想要的 但我不希望人为干预来定义对象 我想获得在几帧的过程中变化的总像素的中心点
  • Docker RUN groupadd && useradd 指令无效

    我已经使用 Dockerfile 构建了 Docker nginx 基本 映像 其片段如下 FROM ubuntu 14 04 MAINTAINER Me
  • opencv中的骨架化

    opencv中有没有可以使用的特定函数来进行骨架化 另外 我搜索了一段时间 想知道opencv是否实现了voronoi 骨骼 似乎有 但真的是 看起来 Voronoi Skeleton 是在 cvConstructSkeleton and
  • 如何提高轮廓精度?

    我正在做一个使用 OpenCV 的项目 我需要从高清照片中精确地裁剪出一些物体 我使用四边形树将照片切成碎片 然后计算每个四边形的同质性以确定物体的一部分是否在四边形中 我根据四边形的同质性应用了一些具有不同阈值的 Canny 滤波器 我希
  • 训练鲁棒级联分类器时要考虑的建议?

    我正在训练级联分类器以检测图像中的动物 不幸的是 我的误报率相当高 使用 Haar 和 LBP 超高 使用 HOG 可以接受 我想知道如何改进我的分类器 这是我的问题 鲁棒检测所需的训练样本量是多少 我在某处读到需要 4000 个正样本和

随机推荐

  • 使用mockjs创建假数据

    npm install mockjs 创建mock文件夹 在mock文件夹下创建1 js 1 js import Mock from mockjs 引入mockjs export default Mock mock postdata1 po
  • 剑网三服务器缺少必要启动文件,win7系统玩剑网三游戏经常掉线的解决方法

    很多小伙伴都遇到过win7系统玩剑网三游戏经常掉线的困惑吧 一些朋友看过网上零散的win7系统玩剑网三游戏经常掉线的处理方法 并没有完完全全明白win7系统玩剑网三游戏经常掉线是如何解决的 今天小编准备了简单的解决办法 只需要按照1 掉线基
  • 循环神经网络RNN以及几种经典模型

    RNN简介 现实世界中 很多元素都是相互连接的 比如室外的温度是随着气候的变化而周期性的变化的 我们的语言也需要通过上下文的关系来确认所表达的含义 但是机器要做到这一步就相当得难了 因此 就有了现在的循环神经网络 他的本质是 拥有记忆的能力
  • el-menu-item内容过多,不能滚动

    问题描述 这里放了六张图片 只能看到最下面的部分 上面的部分被挤出了屏幕外面 这里的弹出框是element ui组件自动生成的 即这个div 我此时有关这部分的代码如下 解决思路 一开始是想抓住这个生成的div 修改这个div的样式试图让它
  • python 2.x安装

    1 查看当前python版本 python version 2 安装最新2 x版本 brew install python 2 安装完成后 注意一下提示 pip and setuptools have been installed To u
  • 阻碍区块链应用落地的五大难题和解决方案

    2018年初区块链掀起了一阵新热潮 多家互联网公司纷纷宣布推出区块链项目 新兴的区块链项目方和媒体百家争鸣 一时之间区块链行业风光无限 区块链概念的火爆 使得越来越多的人开始学习它 理解它 甚至 拥抱 它 只是沉浸在 狂欢 里的众人怎么也没
  • show,attend and tell(image caption论文复现总结)

    论文中的核心思想 GitHub上的Image Caption项目https github com sgrvinod a PyTorch Tutorial to Image Captioning 研究的问题 Image Caption 为图片
  • _I,_O,_IO,条件编译#ifndf _HEAD_H中的下划线_是什么,有什么用

    1 其实质是一个宏名 由此我们可以防止发生重复定义或声明 2 编程风格 使标识符含义更清晰易懂 假设你的头文件名为head h 根据习惯 我们声明一个宏HEAD H 对应这个头文件 在头文件中开始的地方和结尾的地方加上 对HEAD H的声明
  • CentOS8更换阿里云yum源

    以下是使用阿里云的CentOS 8镜像源配置文件作为示例 备份原有的yum源文件 以便需要时恢复 sudo mv etc yum repos d CentOS tmp 下载并安装阿里云的CentOS 8源配置文件 sudo curl o e
  • AJAX JSON的数据传输

    文章目录 AJAX的JSON引入 javascriptJSON对象创建和访问 javascript怎么创建JSON对象 javascript访问JSON javascript字符串转换成JSON对象 对案例进行改造 使用json传输 将ja
  • spring boot 使用审计

    创建User类 测试类只有一个name属性 Entity Table name UcenterUser Data public class User extends BaseEntity private String name 抽取一个基类
  • ArrayList特点分析及源码阅读

    1 特点 ArrayList是个动态数组 实现List接口 主要用来存储数据 如果存储基本类型的数据 如int long boolean short byte 那只存储它们对应的包装类 增删慢 每次删除元素 都需要更改数组长度 拷贝以及移动
  • warning: retrying (retry(total=4, connect=none, read=none, redirect=none, st

    今天在利用pip安装时遇到了一些问题 首先在使用pip语句时 提示pip不是内部命令行 但是其实已经安装了pip 原因 由于python3 x之后pip都是命名为pip3 解决 将安装语句的pip 改为pip3 问题2 使用pip安装安装包
  • 一文看懂软件测试方法和规范

    软件测试方法是指测试软件的方法 随着软件测试技术的不断发展 测试方法也越来越多样化 针对性更强 选择合适的软件测试方法可以让我们事半功倍 本文主要介绍的是软件测试方法和规范 跟随小编一起来了解一下具体的测试流程及规范吧 软件测试基本流程图
  • jmeter吞吐量_性能测试jmeter详解

    曾光红 文 目前最新版本发展到5 0版本 需要Java7以上版本环境 下载解压目录后 进入apache jmeter 5 0bin 双击ApacheJMeter jar文件启动JMemter 1 创建测试任务 添加线程组 右击测试计划 在快
  • Android应用程序创建桌面快捷方式

    pre class java 测试环境为Adnroid 2 1以上 第一步 AndroidManifest xml 权限配置 添加快捷方式权限 pre
  • 关于query.filter()的一些常用的方法

    equals query filter User name ed not equals query filter User name ed like query filter User name like ed in query filte
  • RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you

    Pytorch报错 RuntimeError Cannot re initialize CUDA in forked subprocess To use CUDA with multiprocessing you must use the
  • Mybatis提高查询效率的方式

    一 缓存机制 1 一级缓存 当mysql连续执行两次select from table where id 1 第一次会执行sql语句查询数据库 然后保存到sqlsession缓存 第二次查询会先从缓存里查找 有的话直接返回不会执行sql 但
  • 关于在RK3288上安装Opencv的方法

    Opencv是一个开源的计算机视觉库 可以给开发人员提供更便捷的方式设计复杂的视觉应用 Opencv主要是用c和c 编写 可以运行在Windows Linux Mac等上 这几天尝试着在RK3288上安装Opencv 被虐了好多遍 幸好没有