Upload
leliem
View
229
Download
0
Embed Size (px)
Citation preview
S I V P
Scilab Image and Video Processing Toolbox∗
(Scilabã�Àª?nóä�)
version 0.4.0
u¸j§ÿÖ�¥I�Æ�gÄzïĤgd^��¬†
[email protected], [email protected]
2006 c 9 � 5 F
∗http://sivp.sourceforge.net/†http://fsa.ia.ac.cn/
1
8¹ 2
8¹
1 {0 3
1.1 SIVP &E®o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 SIVP �õU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 SIVP �U? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 XÛSC 5
2.1 Linux eSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Windows eSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 ¦^ SIVP 8
3.1 C1 SIVP � Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Ö�ã�¿w« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 �\^� . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4 Ö�Àª¿w« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.5 MïÀª©� . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.6 ã�>�uÿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.7 ��ãÚO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.8 �õõU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Óa^�5Ué' 12
5 SIVP � Windows £� 12
6 e�Ú�ó� 18
7 �� 18
1 {0 3
1 {0
SIVP£ã1¤´��;� Scilab �O�ã�ÚÀª?nóä�"§´��´^§p� �gd�óä�§8c®²�.�/��ïó�ö2��e1Ú¦^"
ã 1: SIVP$1.¡
Scilab ´��`D�m� è��ÆO�^�§8c�û�^� Matlab �'§3óä��´L5k¤j""3ã�?nóä��¡§®²ko�óä�§��k SIP óä�'��õ"SIP ´Äuã�¥ ImageMagicx mu�§�,|±¯õã��ª§�´3ã�?n��ÇØ´ép"Ó� Scilab vkÀª?n�óä�§Àª´ã�S�§3?nþ�ã�?nkéõ�Ó�/�§u´·���mu��8ã�?nÚÀª?n��N�óä�"
SIVP ´��ë\ Scilab ¿m��8§�mu§�8�Ø==´�ë\ Scilab ¿m§�´��.�/� Scilab ^rJø��´^§p�Úgd�ã�Àª?nóä�"�4 SIVP Uk�Ï�uЧ3muÐϧ·�B3m ^���E SourceForge �Õþ£ http://www.sourceforge.net ¤ïáSIVP�Ì�£ http://sivp.sourceforge.net§ã2¤§¿òz��mu�ã� �èúÙu SIVP ��Õ"SIVP ´���Ì GPL �Æ�m� �è� Scilab óä�§?Û<Ñ�±��§� �觿Ué�?1?U"
1.1 SIVP &E®o
SIVP �äN&E�uL1µ
1 {0 4
ã 2: SIVPÌ��ã
��N�y GNU General Public License (GPL)
ö�XÚ Linux§Windows§±9Ù¦UnixXÚ?§�ó C§TCL/TK
.¡�ó =©I��¥ Scilaba§OpenCVb
SIVP� http://sivp.sourceforge.net
�8+n� http://sourceforge.net/projects/sivp/
�ö u¸j£�è?�¤§ÿÖ�£Windows²�£�¤e1êþ 2509c
aI�Scilab >= 3.1.1§Ï�3ù�c� Scilab ���3 Bug§SIVP ØUMï�êõ�Ý"bXJI�Àª|±§Linux e OpenCV I�3FFMPEGÄ:þ?È"c��u2006c9�2F§�=ÚO SourceForge Ì�þ�e1"
L 1: SIVP &E®o
2 XÛSC 5
1.2 SIVP �õU
SIVP version 0.4.0 y3äk�õUµ• Ö�ã�£|±�ªµBMP, PNG, JPEG, TIFF, PBM, PGM, PPM, SR¤• Ö�Àª§l��ÞÖÀª£|±�ªÀö�XÚSCÀª)èìêþ¤• ã�w«• ã�a.=�• ã�/G=�• ã�©Û�ÚO• ã��ê$�• ã�ÈÅ• /�Æ$�• ôÚ�m=�
1.3 SIVP �U?
�ë\ Scilab 2005 ¿m� SIVP 0.2.6 ���'§SIVP 0.4.0 äkXe5UJpµ• ¼ê���#§¦�� Matlab ã�?nóä�p�¼êN^�Ó¶• �¡|±�«�êa.Ú2:.�ã�§|±�a.k BINARY§ UINT8§
INT8§UINT16§INT16§INT32§DOUBLE"• V\�þã�?n¼ê§SIVP 0.2.6 ¼êêþ� 25§ SIVP 0.4.0 �¼êêþ
O\� 46"• ?�P���3��Ü© Bug§SIVP 0.4.0 �\½´^"• Windows ���SC§S�\�õÚ�Uz"
2 XÛSC
ÃØ3 Linux e§�´3 Windows e§SIVP Ñ�~N´SC"ÄksI�kl SIVP
Ì� http://sivp.sourceforge.net e1�A�^��§,�Uìe¡£ãSC"
2.1 Linux eSC
3 Linux e§Ï~é �è?1?ÈSC§e1 �è�§SCL§�I�$1./configure§make§make install n�·-"äNSC·-Xeµ
$tar zxvf sivp-0.4.0.tar.gz #)Ø �è$cd sivp-0.4.0
2 XÛSC 6
$./configure #u���$make #?È#make install #SC§�^root$1SC
2.2 Windows eSC
3 Windows e§SIVP kã/.¡�SC§S"SC SIVP �I�e1SC§S§̂ àIVÂSC§S§SC§SK¬gÄSC"äNÚ½Xã3-7µ
ã 3: Windows SC1�Ú
ã 4: Windows SC1�Ú
2 XÛSC 7
ã 5: Windows SC1nÚ
ã 6: Windows SC1oÚ
ã 7: Windows SC1ÊÚ
3 ¦^ SIVP 8
3 ¦^ SIVP
3.1 C1 SIVP � Scilab
SC SIVP �§Scilab � toolboxes èüeòÑy/SIVP0§: SIVP K�C1 SIVP
� Scilab"Xã8µ
ã 8: C1 SIVP � Scilab
3.2 Ö�ã�¿w«
SIVP |±Xeã��ªµ• Windows bitmaps - BMP, DIB;
• JPEG files - JPEG, JPG, JPE;
• Portable Network Graphics - PNG;
• Portable image format - PBM, PGM, PPM;
• Sun rasters - SR, RAS;
• TIFF files - TIFF, TIF.
im=imread(SCI+’/contrib/sivp/images/lena.png’);
imshow(im); //w«ã�
$1(JXã9
3 ¦^ SIVP 9
ã 9: ã�w«
3.3 �\^�
imwrite ¼ê�±ò Scilab ¥�ã�ݱã�©���ª�\^�"e¡��è�±òã�Ý im �\ã�©� image.bmp"
imwrite(im, ’image.bmp’);
ã���ªd©�¶�*жû½"
3.4 Ö�Àª¿w«
Ö�Àª¥�v§I�k^ aviopen ¼ê�mÀª©�§,�^ avireadframe Ö�v§avireadframe �£�c�v"��I�^ aviclose '4®²�m�Àª©�"�m��Àª©�§Ö�c 100 v¿w«��èXeµ
n = aviopen(’video.avi’); //�m©�for idx=1:100,
im=avireadframe(n); //Ö��vã�imshow(im); //w«ã�
end;
aviclose(n); //'4©�
3 ¦^ SIVP 10
3.5 MïÀª©�
XJ·���ò��ã�S��\��Àª©�§·��±k¦^ avifile ¼êMï��Àª©�§,�^ addframe ¼ê�v�v�\\ã�§��^ aviclose ¼ê'4dÀª©�"~fXeµ
im = imread(’lena.png’);
n = avifile(’lena.avi’, [200;200], 30);
for ii=1:300
ims = im(200:399, ii:ii+199, :);
addframe(n, ims);
end
aviclose(n);
3.6 ã�>�uÿ
SIVP ¥� edge ¼ê|±õ«>�uÿ�f§8c®²|±�k sobel!prewitt!log!fftderiv Ú canny"ò5òV\�õ��f"
e¡��è©O^ Sobel�f§Canny�f Ú Sobel �f�Ø���z?1>�uÿ"
im = imread(’lena.png’);
im = rgb2gray(im);
E = edge(im, ’sobel’);
imshow(E);
E = edge(im, ’canny’, [0.06, 0.2]);
imshow(E);
E = edge(im, ’sobel’, -1);
imshow(mat2gray(E));
$1(JXã10"
3.7 ��ãÚO
imhist �±éã����ã?1ÚO"XJ�½w«ëê§imhist ¼ê�±±�Ñã����ã£ã11¤"
3 ¦^ SIVP 11
(a) Sobel �f (b) Canny �f (c) Sobel �f£���z¤
ã 10: ã�>�uÿ
im = imread(’lena.png’);
im = rgb2gray(im);
[count, cells]=imhist(im);
[count, cells]=imhist(im, 10);
scf(0); imhist(im, 10, ’’);
scf(1); imhist(im, 10, 0.5);
scf(2); imhist(im, 10, ’green’);
ã 11: ã���ã
4 Óa^�5Ué' 12
3.8 �õõU
SIVP ¥�õ�õU§�ë� SIVP 3�©�"ÏL/Help0→/Help browser0→/SIVP
· · ·0§�±w«¤k SIVP ¼ê��Ï£ã12¤"
ã 12: 3��Ï
4 Óa^�5Ué'
ë�5Ué'�^�1µ• SIPµScilab ã�?nóä�§8c´ Scilab ã�?nóä�¥�2�¦^��
�¶• Matlab ã�?nóä�¶• SIVP"
L2¥�Ñùn�^���«ëê'�"SIVP � Matlab Ú SIP �'§ÃØ3ã�Àª�Ö��¡§�´3ã�?n�¡§$1�ÝÑk²w�`³"3ã�w«�¡§�ÝØX Matlab¶�� SIP �'§�,�ÝÑú§��±±ýçÚw«ã�"¤±` SIVP
3$1�Ç�¡`uÙ¦ü�óä�"
5 SIVP � Windows £�
SIVP ´3 Linux XÚemu§XJI�3 Windows e¦^ SIVP KI�ò SIVP £�� Windows"�,s�±��¦^·�Jø� Windows �?�SC©� ØI�gC
1¤k^�Ñ$1uÓ����O�Å£P4 3.0G CPU§512MS�¤¶SIP Ú SIVP $1u Linux ö�XÚ§Matlab
$1u Windows ö�XÚ
5 SIVP � WINDOWS £� 13
ëê SIP Matlab SIVP
|±ã��ªêþ >90 15 10
|±Àª�ªêþ Ø|±Linux 1«¶Windows 5«
�50«£À)èìSCê8¤
´Äm� è ´ Ä ´Ö� 240 ̺�� 352X240 �ýçÚ PNG ã�¤I�m§£ã13¤
6.78¦ 6.04¦ 4.94¦
Ö� 240 ̺�� 120X120 ��Ý PNG ã�¤I�m§£ã14¤
1.85¦ 2.04¦ 0.24¦
Sobel �f£ 512X512 �Ýã�§ã15¤
0.34¦ 0.32¦ 0.04¦
Ö � À ª ¤ I � m £ 320X240
rawvideo§100v§ã16¤) 0.45¦ 0.31¦
w«ã�¤I�m£ 512X512 çÚ§ã17¤
0.19¦ 0.21¦ 0.95¦
L 2: Óa^�ëê'�
ã 13: �çÚã�¤I�m
ã 14: ��Ýã�¤I�m
5 SIVP � WINDOWS £� 14
ã 15: Sobel �f¤I�m
ã 16: Ö�Àª¤I�m
ã 17: çÚã�w«¤I��m
5 SIVP � WINDOWS £� 15
?1£�ó�"MinGW (Minimallist GNU for Windows) ´�±)¤ Windows �/�è��|mu
óä"\�±¦^§�3 Unix/Linux�� configure, make ù�óä�"�¦^ MinGW ?Èù�óä�§·�I�ÃÄ����"��L§´dXeÚ
½|¤µ1. �¯ www.mingw.org ¿e1SC MinGW, MSYS, MSYS-DTK",�©O,?
autoconf, automake �2.59,1.8.2�"¿�MSYSSC libxslt-1.1.14+.win32"2. lhttp://gladewin32.sourceforge.net/ e1 gtk-win32-devel-2.6.x£�#��¤¿r
§SC�C:\GTK 8¹e, 3MSYS�1Xe·-:
cp /c/GTK/bin/* /usr/local/bin/
cp /c/GTK/share/aclocal/pkg.m4 /usr/local/share/aclocal/
3. Scilab 7LSC3 c:\scilab ù�8¹(3MSYS¥éAX /c/scilab)§,�«�{´\3 MSYS éA� /etc/fstab ù�©�¥V\�A� mount 8¹"
4. �, Windows é���دa§�´du3 MSYS ¥«©���§·�I�r/c/scilab/bin ¥� ”LibScilab.*” ù¥¶=z¤��"3 MSYS ¥�1Xe��-=�×���"
mkdir /tmp/scilibs
mv /c/scilab/bin/LibSci* /tmp/scilibs
cd /tmp/scilibs
for i in ‘ls Lib*‘; do
mv $i /c/scilab/bin/‘echo $i | tr A-Z a-z‘;
done
5. r\� opencv SC3 c:\opencv (3 MSYS ¥éAX /c/opencv ù�8¹)§½ö3 /etc/fstab ¥V\�A� mount 8¹"3�c©�YeMï��¶� opencv
�8¹§3 opencv 8¹e¡§Ue¡�ªMï opencv.sh!opencv.pc ü�©�§?UÙ¥�097��Ò�¢SSC� opencv ��Ò"XJ opencv vkSC3c:\opencv ù�8¹.e§�?UN� ./opencv/opencv.sh ù���©�"��§3 MSYS ¥$1§"
#--------------------------------------------------
#opencv/opencv.pc
#--------------------------------------------------
# Package Information for pkg-config
5 SIVP � WINDOWS £� 16
prefix=/usr/
exec_prefix=${prefix}/bin
libdir=${prefix}/lib/opencv
includedir=${prefix}/include/opencv
Name: OpenCV
Description: Intel(R) Open Source Computer Vision Library
Version: 0.9.7
Libs: -L${libdir} -lcxcore -lcv -lhighgui -lcvaux
Cflags: -I${includedir}
#--------------------------------------------------
#opencv/opencv.sh
#--------------------------------------------------
#!/bin/sh
rm *.def *.dll.a
echo EXPORTS > cxcore.def
nm /c/opencv/lib/cxcore.lib | grep ’ T _’ | sed ’s/.* T _//’ >> cxcore.def
dlltool --def cxcore.def --dllname cxcore097.dll --output-lib libcxcore.dll.a
echo EXPORTS > cv.def
nm /c/opencv/lib/cv.lib | grep ’ T _’ | sed ’s/.* T _//’ >> cv.def
dlltool --def cv.def --dllname cv097.dll --output-lib libcv.dll.a
echo EXPORTS > cvaux.def
nm /c/opencv/lib/cvaux.lib | grep ’ T _’ | sed ’s/.* T _//’ >> cvaux.def
dlltool --def cvaux.def --dllname cvaux097.dll --output-lib libcvaux.dll.a
echo EXPORTS > highgui.def
nm /c/opencv/lib/highgui.lib | grep ’ T _’ | sed ’s/.* T _//’ >> highgui.def
dlltool --def highgui.def --dllname highgui097.dll --output-lib libhighgui.dll.a
echo EXPORTS > cvcam.def
5 SIVP � WINDOWS £� 17
nm /c/opencv/lib/cvcam.lib | grep ’ T _’ | sed ’s/.* T _//’ >> cvcam.def
dlltool --def cvcam.def --dllname cvcam097.dll --output-lib libcvcam.dll.a
if test ! -d "/usr/lib/opencv"; then
mkdir /usr/lib/opencv
fi
cp lib*.a /usr/lib/opencv
cp opencv.pc /usr/lib/opencv
cp /c/opencv/bin/cxcore097.dll /usr/bin
cp /c/opencv/bin/cv097.dll /usr/bin
cp /c/opencv/bin/cvaux097.dll /usr/bin
cp /c/opencv/bin/highgui097.dll /usr/bin
cp /c/opencv/bin/cvcam097.dll /usr/bin
if test !-d "/usr/include/opencv"; then
mkdir /usr/include/opencv
fi
cp /c/opencv/cxcore/include/*.h /usr/include/opencv
cp /c/opencv/cv/include/*.h /usr/include/opencv
cp /c/opencv/cvaux/include/*.h /usr/include/opencv
cp /c/opencv/otherlibs/highgui/*.h /usr/include/opencv
cp /c/opencv/otherlibs/cvcam/include/*.h /usr/include/opencv
6. 3 MSYS ¥ ) m è§? \ è 8 ¹§U X e � ª export � ¸ C þ SCI!PKG CONFIG PATH
export SCI=/c/scilab
export PKG_CONFIG_PATH=/usr/lib/opencv
ùp”/usr/lib/opencv” ´opencv.pcù�©�¤3�8¹"�X3$1e¡·-
./configure
make
make install
6 e�Ú�ó� 18
7. éu,��� libtool!automake§I�ÃÄSCóä��Ä�¥µ
cp src/.libs/libsivp*.dll /c/scilab/contrib/sivp/lib/libsivp.dll
8. rcv097.dll, cxcore097.dll, highgui097.dll ��SCI/contrib/sivp/lib ù�8¹e"~Xµ
cp /c/opencv/bin/cxcore097.dll /c/scilab/contrib/sivp/lib
cp /c/opencv/bin/cv097.dll /c/scilab/contrib/sivp/lib
cp /c/opencv/bin/highgui097.dll /c/scilab/contrib/sivp/lib
y3éÄScilab:Âtoolboxe�sivpèü�§=�¦^sivpóä�"
6 e�Ú�ó�
SIVP ¿Ø¬Ï� Scilab ¿m�(å Ê�mu§3±�§SIVP ò3Xe�¡UYãå§Jø��[���`D�óä�"
• `zã�w«�ݶ• O\�õã�Àª?n¼ê¶• Jp Windows e£����5U¶• �â^r��"?1U?¶• áÂ�õmuöë�� SIVP �mu¥¶• XJ�U§� SIP Ü¿§8¥muåþ���`D�óä�"
7 ��
·��~a� SourceForge.net Jø�8+n²�§¦��8+nC�={üq�B¶a� SIP �ö Ricardo Fabbri 9%)�mu¥���¦J¯K"·���~a�¥{&E!gÄz�A^êÆ¢�¿£LIAMA¤3 SIVP mu¥Jø�Ï�|±§±9 Scilab #ª|¥¯õ*l��Ï"Ød�·���AOa� Scilab �Õ3ÙÌ�£http://www.scilab.org¤þV\ SIVP 0�§¦��õ� Scilab ^r) SIVP"