?? opencv 圖像處理和計(jì)算機(jī)視覺(jué)參考手冊(cè).htm
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0077)http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm -->
<HTML><HEAD><TITLE>OpenCV: 圖像處理和計(jì)算機(jī)視覺(jué)參考手冊(cè)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Content-Language content=zh-cn><LINK
href="OpenCV 圖像處理和計(jì)算機(jī)視覺(jué)參考手冊(cè).files/opencvref.css" type=text/css charset=gb2312
rel=STYLESHEET>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY>
<H1>CV 參考手冊(cè)</H1>
<HR>
<P><A href="http://blog.csdn.net/hunnish">HUNNISH</A> 注:</P>
<P>本翻譯是直接根據(jù) OpenCV Beta 4.0
版本的用戶手冊(cè)翻譯的,原文件是:<opencv_directory>/doc/ref/opencvref_cv.htm, 可以從
SOURCEFORG 上面的 OpenCV 項(xiàng)目下載,也可以直接從 <A href="http://www.assuredigit.com/">阿須數(shù)碼</A>
中下載:<A
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cv.htm">http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cv.htm</A>。</P>
<P>翻譯中肯定有不少錯(cuò)誤,另外也有些術(shù)語(yǔ)和原文語(yǔ)義理解不透導(dǎo)致翻譯不準(zhǔn)確或者錯(cuò)誤,也請(qǐng)有心人賜教。</P>
<P>圖像處理、結(jié)構(gòu)分析、運(yùn)動(dòng)分析和對(duì)象跟蹤部分由R.Z.LIU翻譯,模式識(shí)別、照相機(jī)定標(biāo)與三維重建部分由H.M.ZHANG翻譯,全文由Y.C.WEI統(tǒng)一修改校正。</P>
<HR>
<UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc">圖像處理</A>
<UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_features">梯度,
邊緣和角點(diǎn)</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_resampling">采樣
差值和幾何變換 </A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_morphology">形態(tài)學(xué)操作</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_filters">濾波和彩色變換</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_pyramids">金字塔及其應(yīng)用</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_ccomp">連接組件</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_moments">圖像和輪廓矩</A></SPAN>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_special">特殊圖像變換</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_histograms">直方圖</A></SPAN>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_imgproc_matching">匹配</A></SPAN>
</LI></UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_sa">結(jié)構(gòu)分析</A>
<UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_sa_contours">輪廓處理</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_sa_compgeom">計(jì)算幾何</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_sa_subdiv">平面劃分</A>
</LI></UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_motion">運(yùn)動(dòng)分析和對(duì)象跟蹤</A>
<UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_motion_acc">背景統(tǒng)計(jì)量的累積</A>
<LI><SPAN lang=EN-US
style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; FONT-STYLE: normal; FONT-FAMILY: Times New Roman; FONT-VARIANT: normal; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Times New Roman">
</SPAN><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_motion_motempl">運(yùn)動(dòng)模板</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_motion_tracking">對(duì)象跟蹤</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_motion_optflow">光流</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_motion_estimators">預(yù)估器</A>
</LI></UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_pattern">模式識(shí)別</A>
<UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_pattern_objdetection">目標(biāo)檢測(cè)</A>
</LI></UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_3d">照相機(jī)定標(biāo)和三維重建</A>
<UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_3d_calibration">照相機(jī)定標(biāo)</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_3d_pose">姿態(tài)估計(jì)</A></SPAN>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_3d_epipolar">極線幾何</A></SPAN>
</LI></UL>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_func_index">函數(shù)列表</A>
<LI><A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#cv_bib">參考</A></SPAN>
</LI></UL>
<HR>
<H1><A name=cv_imgproc>圖像處理</A></H1>
<P>注意:<BR>本章描述圖像處理和分析的一些函數(shù)。其中大多數(shù)函數(shù)都是針對(duì)兩維象素?cái)?shù)組的,這里,我們稱這些數(shù)組為“圖像”,但是它們不一定非得是IplImage
結(jié)構(gòu),也可以是CvMat或者CvMatND結(jié)構(gòu)。 </P>
<HR>
<H2><A name=cv_imgproc_features>梯度、邊緣和角點(diǎn)</A></H2>
<HR>
<H3><A name=decl_cvSobel>Sobel</A></H3>
<P class=Blurb><SPAN
style="FONT-FAMILY: 宋體; mso-ascii-font-family: Helvetica; mso-hansi-font-family: Helvetica">使用擴(kuò)展</SPAN>
Sobel <SPAN
style="FONT-FAMILY: 宋體; mso-ascii-font-family: Helvetica; mso-hansi-font-family: Helvetica">算子計(jì)算一階、二階、三階或混合圖像差分</SPAN></P><PRE>void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 );
</PRE>
<P>
<DL>
<DT>src
<DD>輸入圖像.
<DT>dst
<DD>輸出圖像.
<DT>xorder
<DD>x 方向上的差分階數(shù)
<DT>yorder
<DD>y 方向上的差分階數(shù)
<DT>aperture_size
<DD>擴(kuò)展 Sobel 核的大小,必須是 1, 3, 5 或 7。 除了尺寸為 1, 其它情況下, aperture_size
×aperture_size 可分離內(nèi)核將用來(lái)計(jì)算差分。對(duì) aperture_size=1的情況, 使用 3x1 或 1x3 內(nèi)核
(不進(jìn)行高斯平滑操作)。這里有一個(gè)特殊變量 CV_SCHARR (=-1),對(duì)應(yīng) 3x3 Scharr 濾波器,可以給出比 3x3 Sobel
濾波更精確的結(jié)果。Scharr 濾波器系數(shù)是: <PRE>| -3 0 3|
|-10 0 10|
| -3 0 3|
</PRE>對(duì) x-方向 以及轉(zhuǎn)置矩陣對(duì) y-方向。 </DD></DL>
<P>函數(shù) <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvSobel">cvSobel</A>
通過(guò)對(duì)圖像用相應(yīng)的內(nèi)核進(jìn)行卷積操作來(lái)計(jì)算圖像差分:</P><PRE>dst(x,y) = d<SUP>xorder+yoder</SUP>src/dx<SUP>xorder</SUP>•dy<SUP>yorder</SUP> |<SUB>(x,y)</SUB>
</PRE>由于Sobel 算子結(jié)合了 Gaussian 平滑和微分,所以,其結(jié)果或多或少對(duì)噪聲有一定的魯棒性。通常情況,函數(shù)調(diào)用采用如下參數(shù)
(xorder=1, yorder=0, aperture_size=3) 或 (xorder=0, yorder=1, aperture_size=3)
來(lái)計(jì)算一階 x- 或 y- 方向的圖像差分。第一種情況對(duì)應(yīng): <PRE> |-1 0 1|
|-2 0 2|
|-1 0 1|
</PRE>
<P>核。第二種對(duì)應(yīng)</P><PRE> |-1 -2 -1|
| 0 0 0|
| 1 2 1|
or
| 1 2 1|
| 0 0 0|
|-1 -2 -1|
</PRE>核的選則依賴于圖像原點(diǎn)的定義 (<CODE>origin</SPAN></CODE> 來(lái)自 <CODE>IplImage</SPAN></CODE>
結(jié)構(gòu)的定義)。由于該函數(shù)不進(jìn)行圖像尺度變換,所以和輸入圖像(數(shù)組)相比,輸出圖像(數(shù)組)的元素通常具有更大的絕對(duì)數(shù)值(譯者注:即象素的深度)。為防止溢出,當(dāng)輸入圖像是
8 位的,要求輸出圖像是 16 位的。當(dāng)然可以用函數(shù)函數(shù) <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvConvertScale">cvConvertScale</A>
或 <A
href="http://fsa.ia.ac.cn/紼嬪簭/OpenCV/docs/ref/opencvref_cxcore.htm#decl_cvConvertScaleAbs">cvConvertScaleAbs</A>
轉(zhuǎn)換為 8 位的。除了 8-比特 圖像,函數(shù)也接受 32-位 浮點(diǎn)數(shù)圖像。所有輸入和輸出圖像都必須是單通道的,并且具有相同的圖像尺寸或者ROI尺寸。
<HR>
<H3><A name=decl_cvLaplace>Laplace</A></H3>
<P class=Blurb><SPAN
style="FONT-FAMILY: 宋體; mso-ascii-font-family: Helvetica; mso-hansi-font-family: Helvetica">計(jì)算圖像的</SPAN>
Laplacian 變換</P><PRE>void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
</PRE>
<P>
<DL>
<DT>src
<DD>輸入圖像.
<DT>dst
<DD>輸出圖像.
<DT>aperture_size
<DD>核大小 (與 <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvSobel">cvSobel</A>
中定義一樣). </DD></DL>
<P>函數(shù) <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvLaplace">cvLaplace</A>
計(jì)算輸入圖像的 Laplacian變換,方法是先用 sobel 算子計(jì)算二階 x- 和 y- 差分,再求和:</P><PRE>dst(x,y) = d<SUP>2</SUP>src/dx<SUP>2</SUP> + d<SUP>2</SUP>src/dy<SUP>2</SUP>
</PRE>
<P>對(duì) <CODE>aperture_size</SPAN></CODE>=1 則給出最快計(jì)算結(jié)果,相當(dāng)于對(duì)圖像采用如下內(nèi)核做卷積:</P><PRE>|0 1 0|
|1 -4 1|
|0 1 0|
</PRE>
<P>類似于 <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvSobel">cvSobel</A>
函數(shù),該函數(shù)也不作圖像的尺度變換,所支持的輸入、輸出圖像類型的組合和<A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvSobel">cvSobel</A>一致。
</P>
<HR>
<H3><A name=decl_cvCanny>Canny</A></H3>
<P class=Blurb><SPAN
style="FONT-FAMILY: 宋體; mso-ascii-font-family: Helvetica; mso-hansi-font-family: Helvetica">采用</SPAN>
Canny <SPAN
style="FONT-FAMILY: 宋體; mso-ascii-font-family: Helvetica; mso-hansi-font-family: Helvetica">算法做邊緣檢測(cè)</SPAN></P><PRE>void cvCanny( const CvArr* image, CvArr* edges, double threshold1,
double threshold2, int aperture_size=3 );
</PRE>
<P>
<DL>
<DT>image
<DD>輸入圖像.
<DT>edges
<DD>輸出的邊緣圖像
<DT>threshold1
<DD>第一個(gè)閾值
<DT>threshold2
<DD>第二個(gè)閾值
<DT>aperture_size
<DD>Sobel 算子內(nèi)核大小 (見(jiàn) <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvSobel">cvSobel</A>).
</DD></DL>
<P>函數(shù) <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvCanny">cvCanny</A>
采用 CANNY
算法發(fā)現(xiàn)輸入圖像的邊緣而且在輸出圖像中標(biāo)識(shí)這些邊緣。<CODE>threshold1</CODE>和<CODE>threshold2</CODE>
當(dāng)中的小閾值用來(lái)控制邊緣連接,大的閾值用來(lái)控制強(qiáng)邊緣的初始分割。</P>
<HR>
<H3><A name=decl_cvPreCornerDetect>PreCornerDetect</A></H3>
<P class=Blurb><SPAN
style="FONT-FAMILY: 宋體; mso-ascii-font-family: Helvetica; mso-hansi-font-family: Helvetica">計(jì)算用于角點(diǎn)檢測(cè)的特征圖,</SPAN></P><PRE>void cvPreCornerDetect( const CvArr* image, CvArr* corners, int aperture_size=3 );
</PRE>
<P>
<DL>
<DT>image
<DD>輸入圖像.
<DT>corners
<DD>保存候選角點(diǎn)的特征圖
<DT>aperture_size
<DD>Sobel 算子的核大小(見(jiàn)<A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvSobel">cvSobel</A>).
</DD></DL>
<P>函數(shù) <A
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvPreCornerDetect">cvPreCornerDetect</A>
計(jì)算函數(shù)
D<SUB>x</SUB><SUP>2</SUP>D<SUB>yy</SUB>+D<SUB>y</SUB><SUP>2</SUP>D<SUB>xx</SUB>
- 2D<SUB>x</SUB>D<SUB>y</SUB>D<SUB>xy</SUB> 其中 D<SUB>?</SUB>
表示一階圖像差分,D<SUB>??</SUB> 表示二階圖像差分。 角點(diǎn)被認(rèn)為是函數(shù)的局部最大值:</P><PRE>// 假設(shè)圖像格式為浮點(diǎn)數(shù)
IplImage* corners = cvCloneImage(image);
IplImage* dilated_corners = cvCloneImage(image);
IplImage* corner_mask = cvCreateImage( cvGetSize(image), 8, 1 );
cvPreCornerDetect( image, corners, 3 );
cvDilate( corners, dilated_corners, 0, 1 );
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -