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 |