OpenCV开源图像处理函数库在S3C2440移植

发布者:DazzlingGaze最新更新时间:2024-06-13 来源: elecfans关键字:OpenCV  S3C2440  移植 手机看文章 扫描二维码
随时随地手机看文章

一、简介

  • OpenCV是一个基于C/C++语言的开源图像处理函数库

  • 其代码都经过优化,可用于实时处理图像

  • 具有良好的可移植性

  • 可以进行图像/视频载入、保存和采集的常规操作

  • 具有低级和高级的应用程序接口(API)


二、功能说明

  • 图像数据操作(内存分配与释放,图像复制、设定和转换)

  • Image data manipulation (allocation, release, copying, setting, conversion).

  • 图像/视频的输入输出(支持文件或摄像头的输入,图像/视频文件的输出)

  • Image and video I/O (file and camera based input, image/video file output).

  • 矩阵/向量数据操作及线性代数运算(矩阵乘积、矩阵方程求解、特征值、奇异值分解)

  • Matrix and vector manipulation and linear algebra routines (products, solvers, eigenvalues, SVD).

  • 支持多种动态数据结构(链表、队列、数据集、树、图)

  • Various dynamic data structures (lists, queues, sets, trees, graphs).

  • 基本图像处理(去噪、边缘检测、角点检测、采样与插值、色彩变换、形态学处理、直方图、图像金字塔结构)

  • Basic image processing (filtering, edge detection, corner detection, sampling and interpolation, color conversion, morphological operations, histograms, image pyramids).

  • 结构分析(连通域/分支、轮廓处理、距离转换、图像矩、模板匹配、霍夫变换、多项式逼近、曲线拟合、椭圆拟合、狄劳尼三角化)

  • Structural analysis (connected components, contour processing, distance transform, various moments, template matching, Hough transform, polygonal approximation, line fitting, ellipse fitting, Delaunay triangulation).

  • 摄像头定标(寻找和跟踪定标模式、参数定标、基本矩阵估计、单应矩阵估计、立体视觉匹配)

  • Camera calibration (finding and tracking calibration patterns, calibration, fundamental matrix estimation, homography estimation, stereo correspondence).

  • 运动分析(光流、动作分割、目标跟踪)

  • Motion analysis (optical flow, motion segmentation, tracking).

  • 目标识别(特征方法、HMM模型)

  • Object recognition (eigen-methods, HMM).

  • 基本的GUI(显示图像/视频、键盘/鼠标操作、滑动条)

  • Basic GUI (display image/video, keyboard and mouse handling, scroll-bars).

  • 图像标注(直线、曲线、多边形、文本标注)

  • Image labeling (line, conic, polygon, text drawing)


三、在S3C2440上移植

   环境:RedHat AS5

  • 1、涉及的文件

  • libjpeg、libpng、libz、openCV2.0 。

  • 下载在

  • $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

  • 下载在Linux公社的1号FTP服务器里,下载地址:

    FTP地址:ftp://www.linuxidc.com

    用户名:www.linuxidc.com

    密码:www.muu.cc

    在 2011年LinuxIDC.com10月OpenCV开源图像处理函数库在S3C2440移植

    下载方法见 http://www.linuxidc.net/thread-1187-1-1.html

  • $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

2、编��OpenCV的完整过程:

  • step0:准备环境变量

  • #export OPENCV_BUILD_DIR=/home/openCV/install

    step1: 编译zlib
    #tar xzf zlib-1.2.4.tar.gz
    #cd zlib-1.2.4
    ./configure --prefix=$OPENCV_BUILD_DIR/install
    #vi Makefile
    替换gcc为arm-linux-gcc
    替换ar为arm-linux-ar
    替换ranlib为arm-linux-ranlib
    #make
    #make install

    step2:编译jpeg库
    #tar xzf jpegsrc.v8a.tar.gz
    #cd jpeg-8a
    ./configure --host=arm-linux --prefix=$OPENCV_BUILD_DIR/install
    #make
    #make install

    step3:编译libpng库
    #tar xzf libpng-1.2.43.tar.gz
    #cd libpng-1.2.43
    ./configure --host=arm-linux --prefix=$OPENCV_BUILD_DIR/install
    #make
    #make install

    step4:编译OpenCV
    #tar xjf OpenCV-2.0.0.tar.bz2
    #cd OpenCV-2.0.0
    #./configure --host=arm-linux --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-Python --without-swig --disable-static --enable-shared --disable-apps CXX=arm-linux-g++  --prefix=$OPENCV_BUILD_DIR/install --libdir=$OPENCV_BUILD_DIR/install/lib -includedir=$OPENCV_BUILD_DIR/install/include
    #make
    #make install

    最后,strip生成的库:
    #find | xargs file | grep 'not stripped' | cut -d: -f1 | xargs arm-linux-strip


  • 3、编译程序

  • 编译基于openCV库的应用程序一般使用以下Makefile配合编译:

  • 注意LIBOPENCV变量的取值跟上面的一致

  •  

    1. TARGET = cvRect  

    2. SRC = cvRect.cpp  

    3.   

    4.   

    5. LIBOPENCV := /home/openCV/install  

    6. CFLAGS = -I$(LIBOPENCV)/include/opencv  

    7. LDFLAGS = -L$(LIBOPENCV)/lib -lm -lcv -lcvaux -lcxcore -lhighgui -lml -lpthread -ljpeg -lpng -lrt -lcxcore -lz  

    8.   

    9.   

    10. $(TARGET): $(SRC)  

    11.     arm-linux-g++ $(CFLAGS) $(SRC) -o $(TARGET) $(LDFLAGS)  

    12.     arm-linux-strip $(TARGET)  

    13.   

    14.   

    15. clean:  

    16.     rm -rf $(TARGET)  



关键字:OpenCV  S3C2440  移植 引用地址:OpenCV开源图像处理函数库在S3C2440移植

上一篇:Boa Web服务器在S3C2440开发板上移植
下一篇:Linux设备驱动工程师之路——触摸屏驱动s3c2410_ts.c分析

推荐阅读最新更新时间:2024-11-12 22:05

11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)移植DM9000C网卡驱动程序
我们实现了一个虚拟网卡驱动程序,现在我们针对真实的网卡芯片DM9000C,编写移植DM9000C网卡驱动程序。 一、移植分析 协议类的驱动,我们的主要工作往往是将现有的驱动和我们的硬件所匹配起来。协议类的函数往往已经成型不需要我们去修改和编写。比如发包函数:hard_start_xmit函数和netif_rx上报函数都不需要我们编写。网络驱动是针对很多硬件编写出来的,我们使用的是什么硬件CPU,比如ARM9,以及我们使用的系统版本。我们只需要修改驱动,告诉驱动现在的硬件情况是怎么样的,基地址是多少,中断引脚是哪个、设置下内存管理器以满足时序等等。这也是网络驱动移植的简单之处。 (1)DM9000C 一般一款网卡芯片,出
[单片机]
11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)<font color='red'>移植</font>DM9000C网卡驱动程序
S3C2440裸奔触摸屏
S3C2440对于触摸屏的相关interface有以下几个模式: 1.普通转换模式,手册是这么说的:most likely used for General Purpose ADC Conversion.(不了解这个,所以用原文) 2.分开X/Y转换模式,就是分开来转换X位置和Y位置。X位置的信息会保存在ADCDAT0的低10位,而Y位置信息则保存在ADCDAT1的低10位。 3.自动X/Y转换模式,就是会把和X和Y一起转换,然后X,Y位置信息保存跟上面一样,也是在ADCDAT0,ADCDAT1的低10位。(我想一般会用这个模式) 4.等待中断模式,也就是等待触摸屏的中断,ADCTSC=0xd3就是等待笔尖放下时产生中
[单片机]
哈医大世界首例人类头移植手术引争议
  备受争议的“头移植”手术又有了最新消息:据澎湃新闻编译的英国《每日邮报》11月17日报道,意大利神经学家塞尔焦·卡纳韦罗当天在奥地利首都维也纳召开新闻发布会,宣布世界第一例人类头部移植手术已经在一具遗体上成功实施,而手术地点正是中国。卡纳韦罗说,中国哈尔滨医科大学的任晓平教授参与指导了这次手术。11月19日,科技日报记者赶到哈尔滨医科大学,向任晓平教授当面求证。下面就随嵌入式小编一起来了解一下相关内容吧。    “我们做了原创性、始发性的研究”   “手术是在哈尔滨医科大学做的。”任晓平对记者说,“经过长达约18小时的手术,我和团队成功将一具尸体的头与另一具尸体的脊椎、血管及神经接驳。在接下来的一周时间里,有关本次头移植相
[嵌入式]
FreeRTOS STM32移植笔记
1.前言 【1】其实说不上移植笔记,FreeRTOS已经移植至众多平台(MCU),包括MSP430,STM32等,这份笔记完全建立在官方代码的基础之上,简单的说就是修改一些设置从而完成一个呼吸灯实验。 【2】虽然有官方移植代码,但是官方移植版本为STM32的V2.X库,与现在流行的V3.5有比较大的区别。本笔记也是总结网上几篇学习笔记,主要说明如果使用V3.5库,需要做哪些修改。 【3】编译软件为IAR EWARM 6.5。 【相关博文】 【 FreeRTOS学习笔记——任务间使用队列同步数据 】——如何使用FreeRTOS队列。 【 如何在FreeRTOS下实现低功耗——MSP430F5438平台 】
[单片机]
FreeRTOS STM32<font color='red'>移植</font>笔记
boot移植(十一)---代码修改---支持nandflash
一、移植前的修改 1.1 include/configs/jz2440修改 原来的定义: 可以看出,要先定义CONFIG_CMD_NAND才能使能NANDFlash。 这个在我们文件中的82行有定义,所以不需要定义了。    将里面的S3C2410全部改为S3C2440: 1.2 drivers/mtd/nand/修改 拷贝s3c2410_nand.c 成 s3c2440_nand.c 在此目录的makefile中添加 s3c2440_nand.c    修改s3c2440_nand.c 文件,从board_nand_init 逐行检测修改,代码如下: 1 #include common.h 2 3 #i
[单片机]
boot<font color='red'>移植</font>(十一)---代码修改---支持nandflash
linux2.6.18内核S3C2410平台移植笔记
我使用的实验箱是Embest EDUKIT-III,板上资源CPU:SAMSUNG S3C2410A、FLASH:K9F5608U0(Samsung NAND 32MiB),烧录工具:embest flash programmer。因为厂家自带的是2.4的内核,目前学习开发用的基本上都是2.6内核,这两者改动还是比较大的。电话咨询过技术支持后,对方说只想在板子上跑系统的话还是比较好移植的。于是决心自己动手移植内核。不然今后的驱动编写,都没有合适的运行环境,影响进度。所以工欲善其事,必先 利其器,前期的这些准备还是很有必要的。那几天刚好ubuntu10.10发布,满怀期待的我升完级后,结果悲剧了,中文显示变得发虚模糊,主题颜色也极度
[单片机]
s3c2440裸机-nandflash编程-3-初始化及识别
nandFlash命令表 对NAND FLASH的操作需要发出命令,下面有个NAND FLASH的命令表格,那么我们可以此表格上的命令来访问我们的nandflash. 1)时序分析 上面命令表中的读id还不太直观,下图是从nand芯片手册中截取出的读id时序图: ①第一条竖线位置,发送了nCE,CLE,nWE信号,所以90命令被锁存(readID命令); ②第二条竖线位置,发送了nCE,ALE,nWE信号,所以地址00被锁存; 继续往后,命令、地址都发完了,要read数据了,所以释放nWE,ALE,这里tAR表示ALE释放多久后才可以发送nRE信号,tREA表示nRE信号的建立时间; ③第三条竖线位置,发送了nCE,n
[单片机]
uboot移植到6410开发板的过程及环境变量的修改
一、通过U盘下载uboot.bin到开发板,U盘事先必须用飞凌光盘里的一个快速烧写工具,把mmc.bin烧写进U盘内,但是打开U盘后看不到这个文件。然后将uboot.bin烧写进U盘。(ps,如果要直接通过U盘将内核还有文件系统烧写进开发板里,可以直接将zImage跟cramfs文件系统拷进U盘) 二、将U盘插入开发板,选择U盘启动模式,1 2 3 off ,其他on;打开终端,启动;之后就开始烧写,由于没有在U盘内放zImage ,所以烧写的最后一行会提示not found zImage 等。 三、断开电源,选择nand flash启动:1 2 3 6 7 off,其他on;打开电源,在bootdelay计时的时候按下空
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved