LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1124|回复: 0

求助:v4l mvc在arm9(s3c2410)上的移植

[复制链接]
发表于 2007-1-1 16:54:52 | 显示全部楼层 |阅读模式
mvc的介绍和用法:

MVC是以运动察觉为特色的一个文本方式v4l 录像捕获软件。
mvc [options] 用法:
    -B brightness
       指定图亮度价值。
    -C contrast
       指定图对比价值。
    -D 启动mvc作为一个新进程。
    -O directory
         指定基础产生图像的目录, 默认是当前的 。
     -o 不为输出创建附属目录。 使用这种选择,全部图像文件将被放上一份目录。
     -t 在输出图像上打印时间戳。       
     -d device
         指定v4l 设备(缺省:/dev/video0)。
     -e program   当运动识别时执行外部计划。
     -f {jpeg|png}  选择输出文件为形式。 默认是jpeg。
     -i channel
    指定要使用的v4l 设备输入端频道数。 第一次输入是0,并且第2 次输入是1,等等。 通常为bttv 卡片,输入0用于电视,输入1是composite1,输入2 是composite2,输入3是一个S-Video端口。选择缺省值取决于多少输入设备的频道(通道)。 如果设备只有一个输入(象 ov511网络摄像机),它将被用作默认输入。如果设备有超过1个端口(如bttv驱动),mvc 将使用通道1作为默认,因为0频道数被经常作为电视使用输入,因此跳过它。
      -m  使用单一颜色(灰度等级)捕获。
-n {pal|ntsc|secam|auto}
          指定输入信号,默认的录像规范: PAL
      -s  指定图像捕获尺寸,默认320x 240。 例: -s 640x 480
-a HxV S
在Horizantal和Vertical中为形成图像过程指定划分号码。 默认是16x 8。 通常,到32x 16区是好的 足够对普通使用。 例子:-a 32x8
-b number 指定热块数目的临界点。 范围: 从1到所有块。 通常,总块的1%-10%是最好选择。例如,图像在x 方向和 y 方向分成32x 8份,总块是32 * 8 = 256。然后,256 * 0.01 = 3 对 256 * 0.1 = 25是更好的选择范围。 默认价值是总块除64 +1,在以上情况,值是 32*8/64 + 1 = 5。越小的值对于越远的物体越敏感。
      -c value
         指定块色差的起始点。 范围 [0-765] Usu-ally,30-200是普通使用的更好的值。越小越敏感。 默认值是50。
-q quality  指定jpeg性质值 [1-100],默认: 90.
-w delaytime
指定每次捕获(秒)的间隔,默认: 0.5秒。 建议: 0.2-2,默认价值是0.5秒。 例子: -w 1
      -l logfile  指定logfile名被用于执行方式。默认是空行。
-h 显示帮助
      -v 增加冗余水平,可成倍提供和更多debug信息。
按照缺省,运行mvc没有参数,它将使用/dev/video0作为 v4l 设备,作为输入,PAL标准,图片尺寸为320x 240,颜色模式, 块划分是16x 8,热块临界数是总块数/64 +1,在这里是16 * 8/64 +1 = 3,颜色diff临界点是50,如果使用单一颜色,建议使用 –c 25,在每个捕获过程中前台延迟时间是0.5秒。全部图像文件将被保存由日期命名的目录和日期命名的文件里,例如/2005-06-20/18/img-182633-0.jpg。
如果你在前台开始一个进程,你仍然能转换它进入执行方式只需要按Ctrl Z. 所以,你可以从终端那里注销,这个进程将在后台运行和记录全部信息到由-l选择指定文件里,按照缺省,全部消息将被放下。


现在我需要将mvc移植到s3c2410开发板上通过webeye v2000摄像头采集数据,不知道那位兄弟有过mvc移植的经验,向兄弟取取经。
如果需要mvc的源代码和开发板的文档,给我发邮件:wudan0017@tom.com

我移植过程如下:
1。修改Makefile文件
将CC = gcc
改为:CC = arm-unkown-linux-gcc
2.make之后出现信息:
[root@localhost mvc-0.8.9]# make
Makefile:1: depend.inc: 没有那个文件或目录
Generating depend.inc file for this system...
WARNING: libjpeg NOT Found.
WARNING: libpng NOT Found.
armv4l-unknown-linux-gcc  -O2 -Wall -g -I.   -c mvc.c
armv4l-unknown-linux-gcc  -O2 -Wall -g -I.   -c font.c
armv4l-unknown-linux-gcc   -o mvc mvc.o font.o


Makefile文件如下:
include depend.inc
prefix=/usr
dist=$(prefix)/bin

CC = gcc

all: mvc

depend.inc:
        @echo Generating depend.inc file for this system...
        @sh depend.sh

OBJS=mvc.o font.o

mvc: $(OBJS)
        $(CC) $(LIBS) -o $@ $(OBJS)

.c.o:
        $(CC) $(CFLAGS)  $(DEFS) -c $<

strip: mvc
        strip -s mvc

install: mvc
        mkdir -p $(dist)
        install -s mvc  $(dist)/

clean:
        rm -f *.o mvc

distclean: clean
        rm -f depend.inc *.jpg *.bak *~
        rm -rf [0-9][0-9][0-9][0-9]-*


///////////////////////////////////////////
其中depend.sh文件:
#!/bin/sh
CC=${CC-gcc}
CFLAGS=${CFLAGS-'-O2 -Wall -g -I.'}
LIBS=''
DEFS=''

compile='rm -f conftest.o ; $CC $CFLAGS $CFLAGS2 $TESTLIBS conftest.c -o conftest &> /dev/null'

#test libjpeg
[ -f conftest ] && rm -f conftest
cat << XEOF > conftest.c
#include <stdio.h>
#include <jpeglib.h>
main()
{
    struct jpeg_compress_struct cjpeg;
    struct jpeg_error_mgr jerr;
    cjpeg.err = jpeg_std_error(&jerr);
    jpeg_create_compress(&cjpeg);
}
XEOF
TESTLIBS='-ljpeg'
eval $compile
if [ -f conftest ] ; then
  LIBS="$LIBS -ljpeg"
  DEFS="$DEFS -DHAVE_JPEG"
else
  echo "WARNING: libjpeg NOT Found."
fi

#test libpng
[ -f conftest ] && rm -f conftest
cat << XEOF > conftest.c
#include <stdio.h>
#include <png.h>
main()
{
    png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,
                                                  NULL, NULL, NULL);
}
XEOF

TESTLIBS='-lpng'
if which libpng-config &> /dev/null ; then
    CFLAGS2=`libpng-config --cflags`
    TESTLIBS=`libpng-config --libs`
else if which pkg-config &> /dev/null ; then
        for libpng in libpng libpng12 libpng10 nolibpng.pc; do
           if pkg-config --exists $libpng ; then
                break;
           fi
        done
        if [ "$libpng" != "nolibpng.pc" ] ; then
                CFLAGS2=`pkg-config --cflags $libpng`
                    TESTLIBS=`pkg-config --libs $libpng`
        fi
    fi
fi
eval $compile
if [ -f conftest ] ; then
  CFLAGS="$CFLAGS $CFLAGS2"
  LIBS="$LIBS $TESTLIBS"
  DEFS="$DEFS -DHAVE_PNG"
else
  echo "WARNING: libpng NOT Found."
fi

rm -f conftest.c conftest

echo LIBS=$LIBS > depend.inc
echo CFLAGS=$CFLAGS >> depend.inc
echo DEFS=$DEFS >> depend.inc
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表