历史上的今天
返回首页

历史上的今天

今天是:2024年12月27日(星期五)

正在发生

2019年12月27日 | 嵌入式ARM系统中OpenCV的移植

2019-12-27 来源:eefocus

◆(在ubuntu中编译):
安装依赖库:sudo apt-get install build-essential manpages-dev pkg-config


安装libpng:
sudo apt-get install zlib1g-dev
sudo wget http://downloads.sourceforge.net/libpng/libpng-1.2.18.tar.gz?modtime=1179259677&big_mirror=0
sudo tar -xvzf libpng-1.2.18.tar.gz
cd libpng-1.2.18
sudo ./configure --prefix=/usr/local/libpng
sudo make
sudo make install
同样的方式安装: libjpeg     libz
注意:如果出现“/usr/bin/install: 无法创建普通文件“/usr/local/libjpeg/bin/cjpeg”: 没有该文件或目录”的这种错误,是因为无法创建相关的目录,这里需要自己手动创建: sudo mkdir -p /usr/local/libjpeg/bin/cjpeg

 

◆ ./configure --host=arm-none-linux-gnueabi --without-gtk --without-carbon   --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --disable-shared --disable-apps CXX=arm-none-linux-gnueabi-g++ CPPFLAGS=-I/usr/arm-2008q3/arm-none-linux-gnueabi/include --prefix=/usr/opencv
说明:
      --host=arm-linux :指出交叉编译arm平台
      --without-gtk:忽略gtk+2.0 windows
      --without-carbon: 不使用Mac OS上的X库
      --without-quicktime
      --without-1394libs
      --without-ffmpeg
      --without-python
      --without-swig
      --enable-static :生成静态库
      --disable-shared:不生成动态库
      CXX=armv4l-unknown-linux-g++ : 指定编译工具(建议用2.95.2或者2.95.3版本)
      CPPFLAGS=-I/usr/include :OpenCV会用到一些dev的包,如png.h,jpeglib.h,大部分头文件在/usr/include下


make
make install

 

◆export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/opencv/lib/pkgconfig
接着,根据需要在/usr/opencv/lib/pkgconfig/opencv.pc的Libs项中加入参数-lpthread、-ldl之类,例如
Libs: -L${libdir} -lcv -lcxcore -lcvaux -lpthread -lrt  -lm -lpng -ljpeg -lz -lm –ldl

 

◆清除编译的中间文件和编译后的文件:
#make clean
#make distclean

 

◆编译例程drawing.c
    armv4l-unknown-linux-g++ `pkg-config --cflags --libs opencv`  drawing.c -o drawing
或者尝试(某些情况下,顺序问题可能引发undefined reference错误)
    arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`
或着执行
    arm-linux-g++ drawing.c -o drawing -I/usr/opencv/include/opencv -L/usr/opencv/lib  -lcv -lcxcore -lpthread -lrt -lcvaux -lm -lpng -ljpeg -lz -lml -lhighgui –ldl

注意:这儿编译的程序由于没有添加gtk的支持,故而在ARM上是无法运行的,不过去掉显示相关的函数,重新编译,是可以执行的。opencv中文论坛上,有人说才vCreateImage无法连接,不过我测试的结果是可以的,highgui中,有一些非显示的函数应该可以调用。

 

◆出现缺少ldconfig是因为系统PATH中没有包括/sbin,自己添加上即可。
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/opencv/lib/pkgconfig

 

◆如果出现缺少libstdc++库的情况,可以在arm编译器目录下的lib目录中查找,拷贝到开发板中,并确保程序可以找到即可。

 

◆摄像头驱动
以我现在所用网眼V2000为例子,内核选项加入OV511驱动,并且模块加载。OpenCV程序中默认设备为/dev/video0 ,在程序中调用cvCaptureFromCAM函数可以直接获取摄像头,并采集图像。
显示:  显示直接在要显示的地方调用显示驱动函数。

推荐阅读

史海拾趣

Alpha 3 Manufacturing公司的发展小趣事

随着市场的不断变化和客户需求的日益多样化,Alpha 3 Manufacturing公司意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对技术研发的投入,引进了一批高端技术人才,建立了完善的研发体系。经过不断的努力,公司成功推出了一系列具有自主知识产权的高性能电子产品,赢得了客户的广泛赞誉。

Digital公司的发展小趣事

随着业务的不断发展和市场的不断扩大,DIALIGHT公司逐渐实现了全球化布局。他们在美国、英国、丹麦、德国、马来西亚、新加坡、澳大利亚、墨西哥和巴西等地设立了分支机构或办事处,为全球客户提供及时、高效的服务。此外,DIALIGHT还积极寻求与其他企业的合作与共赢,通过战略合作协议的签署,为双方带来新的业务机遇和合作空间。这些举措不仅增强了DIALIGHT的市场竞争力,也为其未来的发展奠定了坚实的基础。

请注意,由于篇幅限制,以上三个故事仅为DIALIGHT公司发展历程的简要概述。如需更详细的信息和更多故事,建议查阅相关资料或访问公司官网。

远阳(FLYOUNG)公司的发展小趣事

为了提高生产效率与产品质量,国光新业积极引进并自主研发高效自动化生产线。公司投产了行业首条高效聚合物自动化生产线,并在此基础上不断进行技改迭代。这些生产线的建立,不仅大幅减少了人力成本,还显著提升了产品的生产效率与一致性。目前,公司正进行第三条全国产化技改技术攻关,旨在进一步提升生产线的智能化与自动化水平。

硕颉(BITEK)公司的发展小趣事

硕颉科技不断推出创新产品,主打系列包括逆变器、LED驱动器、线性稳压器、AC/DC驱动器、MOSFET、视频编码器和解码器以及图像处理器等。这些产品广泛应用于消费电子领域,满足了市场对高质量电子产品的需求。同时,公司积极拓展销售网络,以台湾、韩国、中国大陆和日本等地区为主,逐步向全球市场扩张。

DLP Design公司的发展小趣事

DLP创新设计公司,一家专注于DLP技术应用的企业,通过精准的市场定位和灵活的市场策略,成功在电子行业中脱颖而出。公司深入了解消费者需求,针对不同市场推出差异化产品。同时,DLP创新积极寻求合作伙伴,通过渠道拓展和品牌建设,逐渐提高了市场占有率。其独特的商业模式和敏锐的市场洞察力,使DLP创新在激烈的市场竞争中保持了稳健的发展。

BETA Transformer Technology Corp公司的发展小趣事

随着电子行业的快速发展和变革,BETA Transformer Technology Corp公司面临着前所未有的挑战。为了应对这些挑战,公司不断加大研发投入,加强技术创新,推出了一系列符合市场需求的新产品。同时,BETA公司还积极调整生产结构,优化供应链管理,降低成本,提高产品质量。这些举措使得BETA公司在激烈的市场竞争中保持了领先地位。

问答坊 | AI 解惑

C语言进阶

不错的C语言学习资料…

查看全部问答>

把握家庭安防行业发展解析家居安防市场

  安防相对于通信和家电行业,由于进入门槛低,因此进入安防行业的公司比较多,竞争非常激烈,产品价格和工程造价一降再降,目前已经接近零利润。现在安防企业都说工程难接,就是接到工程也是没有什么利润可言,主要是安防企业都把眼睛盯在城 ...…

查看全部问答>

Verilog HDL设计的要点

以前见过 很不错 但是最近又看不到了 就传上来了…

查看全部问答>

请教FirstPT的地址问题

各位前辈好!想向大家请教一个问题,是这样的: 我在做OAL时,用IAR5.2调试,在startup.s的开头的几行定义如下:     bl      TT     g_oalAddressTable_address           ...…

查看全部问答>

新手求教多种芯片功能

本人是大四学生,今年毕设做的题目是功率因素补偿控制器,属电气类的课题吧。但是本人学的是机械设计的,对电气这方面可以说了解很少。   下面问几个芯片的问题 很肤浅。 MAX202 芯片是干什么用的  电路用它的主要目的是什么 ...…

查看全部问答>

号召加入!!TI LM3S811 DIY之【步进电机驱动器】

号召加入!!TI LM3S811 DIY之【步进电机驱动器】 ...…

查看全部问答>

这段代码正确么?

刚调代码,发现了一个奇怪的问题,没法得到准确结果,现在放上来给大家看看,问题出在哪里  C51下,ACC是内部累加器A。a=0x1,b=0x2。                 &n ...…

查看全部问答>

我的单片机型号是MC9S08DZ60,求助CAN通讯波特率计算

我的单片机型号是MC9S08DZ60,所使用的晶振频率是4MHZ,谁能给我一个计算CAN通讯波特率的范例吗?谢谢你们啦!!!…

查看全部问答>

谈谈对这次易电源试用目的的理解

replyreload += \',\' + 1364929;(注:以下观点可能有误) 这次易电源试用,TI送了板子又设大奖,目的是让大家体验易电源的优势,看看它的性能。 它们也就是拿个觉得“自豪”的产品,让你找找它具体在各方面的与众不同之处。那么,这次试的目的 ...…

查看全部问答>

关于电机驱动模块对无线信号的干扰的测试

搭了个小车,无线收发模块出现了一些问题。单独测试,正常,组合到一起,遥控功能变得很差。接收距离缩短了百分之九十多。在后来的测试中,我改变了固封的可调电感,我意识到调坏了。原来的状态调不回去了。调到了一个相对好一点的状态,继续测试。 ...…

查看全部问答>