⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opencv 图像处理和计算机视觉参考手册.htm

📁 Opencv的中文参考指南
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <TR>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD></TR>
    <TR>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD bgColor=pink><FONT color=#0000ff size=5>
        <P align=center>B</FONT></P></TD>
      <TD bgColor=pink><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#0000ff size=5>
        <P align=center>B</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD></TR>
    <TR>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD></TR>
    <TR>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#0000ff size=5>
        <P align=center>B</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#0000ff size=5>
        <P align=center>B</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD></TR>
    <TR>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#ff0000 size=5>
        <P align=center>R</FONT></P></TD></TR>
    <TR>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#0000ff size=5>
        <P align=center>B</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD>
      <TD><FONT color=#0000ff size=5>
        <P align=center>B</FONT></P></TD>
      <TD><FONT color=#008000 size=5>
        <P align=center>G</FONT></P></TD></TR></TBODY></TABLE>
  <P>对象素输出的RGB分量由该象素的1、2或者4邻域中具有相同颜色的点插值得到。以上的模式可以通过向左或者向上平移一个像素点来作一些修改。转换常量CV_BayerC1C22{RGB|RGB}中的两个字母C1和C2表示特定的模式类型:颜色分量分别来自于第二行,第二和第三列。比如说,上述的模式具有很流行的"BG"类型。</P></LI></UL>
<HR>

<H3><A name=decl_cvThreshold>Threshold</A></H3>
<P class=Blurb>对数组元素进行固定阈值操作</P><PRE>void cvThreshold( const CvArr* src, CvArr* dst, double threshold,
                  double max_value, int threshold_type );
</PRE>
<P>
<DL>
  <DT>src
  <DD>原始数组 (单通道, 8-比特 of 32-比特 浮点数). 
  <DT>dst
  <DD>输出数组,必须与 <CODE>src</CODE> 的类型一致,或者为 8-比特. 
  <DT>threshold
  <DD>阈值 
  <DT>max_value
  <DD>使用 <CODE>CV_THRESH_BINARY</CODE> 和 <CODE>CV_THRESH_BINARY_INV</CODE> 的最大值. 

  <DT>threshold_type
  <DD>阈值类型 (见讨论) </DD></DL>
<P>函数 <A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvThreshold">cvThreshold</A> 
对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像。(<A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cxcore.htm#decl_cvCmpS">cvCmpS</A> 
也可以达到此目的) 或者是去掉噪声,例如过滤很小或很大象素值的图像点。本函数支持的对图像取阈值的方法由 <CODE>threshold_type 
确定</CODE>:</P><PRE>threshold_type=CV_THRESH_BINARY:
dst(x,y) = max_value, if src(x,y)&gt;threshold
           0, otherwise

threshold_type=CV_THRESH_BINARY_INV:
dst(x,y) = 0, if src(x,y)&gt;threshold
           max_value, otherwise

threshold_type=CV_THRESH_TRUNC:
dst(x,y) = threshold, if src(x,y)&gt;threshold
           src(x,y), otherwise

threshold_type=CV_THRESH_TOZERO:
dst(x,y) = src(x,y), if (x,y)&gt;threshold
           0, otherwise

threshold_type=CV_THRESH_TOZERO_INV:
dst(x,y) = 0, if src(x,y)&gt;threshold
           src(x,y), otherwise
</PRE>
<P>下面是图形化的阈值描述:</P>
<P><IMG src="OpenCV 图像处理和计算机视觉参考手册.files/threshold.png" align=center> </P>
<HR>

<H3><A name=decl_cvAdaptiveThreshold>AdaptiveThreshold</A></H3>
<P class=Blurb>自适应阈值方法</P><PRE>void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value,
                          int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,
                          int threshold_type=CV_THRESH_BINARY,
                          int block_size=3, double param1=5 );
</PRE>
<P>
<DL>
  <DT>src
  <DD>输入图像. 
  <DT>dst
  <DD>输出图像. 
  <DT>max_value
  <DD>使用 <CODE>CV_THRESH_BINARY</CODE> 和 <CODE>CV_THRESH_BINARY_INV</CODE> 的最大值. 

  <DT>adaptive_method
  <DD>自适应阈值算法使用:<CODE>CV_ADAPTIVE_THRESH_MEAN_C</CODE> 或 
  <CODE>CV_ADAPTIVE_THRESH_GAUSSIAN_C</CODE> (见讨论). 
  <DT>threshold_type
  <DD>取阈值类型:必须是下者之一 
  <UL>
    <LI><CODE>CV_THRESH_BINARY,</CODE> 
    <LI><CODE>CV_THRESH_BINARY_INV</CODE> </LI></UL>
  <DT>block_size
  <DD>用来计算阈值的象素邻域大小: 3, 5, 7, ... 
  <DT>param1
  <DD>与方法有关的参数。对方法 <CODE>CV_ADAPTIVE_THRESH_MEAN_C</CODE> 和 
  <CODE>CV_ADAPTIVE_THRESH_GAUSSIAN_C</CODE>, 它是一个从均值或加权均值提取的常数(见讨论), 尽管它可以是负数。 
  </DD></DL>
<P>函数 <A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvAdaptiveThreshold">cvAdaptiveThreshold</A> 
将灰度图像变换到二值图像,采用下面公式:</P><PRE>threshold_type=<CODE>CV_THRESH_BINARY</CODE>:
dst(x,y) = max_value, if src(x,y)&gt;T(x,y)
           0, otherwise

threshold_type=<CODE>CV_THRESH_BINARY_INV</CODE>:
dst(x,y) = 0, if src(x,y)&gt;T(x,y)
           max_value, otherwise
</PRE>
<P>其中 T<SUB>I</SUB> 是为每一个象素点单独计算的阈值</P>
<P>对方法 CV_ADAPTIVE_THRESH_MEAN_C,先求出块中的均值,再减掉param1。</P>
<P>对方法 CV_ADAPTIVE_THRESH_GAUSSIAN_C ,先求出块中的加权和(gaussian), 再减掉param1。</P>
<HR>

<H2><A name=cv_imgproc_pyramids>金字塔及其应用</A></H2>
<HR>

<H3><A name=decl_cvPyrDown>PyrDown</A></H3>
<P class=Blurb>图像的下采样</P><PRE>void cvPyrDown( const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5 );
</PRE>
<P>
<DL>
  <DT>src
  <DD>输入图像. 
  <DT>dst
  <DD>输出图像, 宽度和高度应是输入图像的一半 
  <DT>filter
  <DD>卷积滤波器的类型,目前仅支持 <CODE>CV_GAUSSIAN_5x5</CODE> </DD></DL>
<P>函数 <A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvPyrDown">cvPyrDown</A> 
使用 Gaussian 金字塔分解对输入图像向下采样。首先它对输入图像用指定滤波器进行卷积,然后通过拒绝偶数的行与列来下采样图像。</P>
<HR>

<H3><A name=decl_cvPyrUp>PyrUp</A></H3>
<P class=Blurb>图像的上采样</P><PRE>void cvPyrUp( const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5 );
</PRE>
<DL>
  <DT>src
  <DD>输入图像. 
  <DT>dst
  <DD>输出图像, 宽度和高度应是输入图像的2倍 
  <DT>filter
  <DD>卷积滤波器的类型,目前仅支持 <CODE>CV_GAUSSIAN_5x5</CODE> </DD></DL>
<P>函数 <A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvPyrUp">cvPyrUp</A> 
使用Gaussian 金字塔分解对输入图像向上采样。首先通过在图像中插入 0 
偶数行和偶数列,然后对得到的图像用指定的滤波器进行高斯卷积,其中滤波器乘以4做差值。所以输出图像是输入图像的 4 倍大小。(<A 
href="http://www.assuredigit.com/">hunnish</A>: 原理不清楚,尚待探讨)</P>
<HR>

<H3><A name=decl_cvPyrSegmentation>PyrSegmentation</A></H3>
<P class=Blurb>用金字塔实现图像分割</P><PRE>void cvPyrSegmentation( IplImage* src, IplImage* dst,
                        CvMemStorage* storage, CvSeq** comp,
                        int level, double threshold1, double threshold2 );
</PRE>
<P>
<DL>
  <DT>src
  <DD>输入图像. 
  <DT>dst
  <DD>输出图像. 
  <DT>storage
  <DD>Storage: 存储连通部件的序列结果 
  <DT>comp
  <DD>分割部件的输出序列指针 components. 
  <DT>level
  <DD>建立金字塔的最大层数 
  <DT>threshold1
  <DD>建立连接的错误阈值 
  <DT>threshold2
  <DD>分割簇的错误阈值 </DD></DL>
<P>函数 <A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm#decl_cvPyrSegmentation">cvPyrSegmentation</A> 
实现了金字塔方法的图像分割。金字塔建立到 <CODE>level</CODE> 指定的最大层数。如果 
<CODE>p(c(a),c(b))&lt;threshold1</CODE>,则在层 i 的象素点 a 和它的相邻层的父亲象素 b 之间的连接被建立起来, 
<DIV>
<P>定义好连接部件后,它们被加入到某些簇中。如果<CODE>p(c(A),c(B))&lt;threshold2</CODE><CODE>,</CODE>则任何两个分割 
A 和 B 属于同一簇。</P>
<DIV>
<P>如果输入图像只有一个通道,那么</P>
<DIV><CODE>&nbsp;&nbsp;&nbsp; p(c&sup1;,c&sup2;)=|c&sup1;-c&sup2;|</CODE>.&nbsp; 
<P>如果输入图像有单个通道(红、绿、兰),那么&nbsp;</P>
<DIV><CODE>&nbsp;&nbsp;&nbsp; 
p(c&sup1;,c&sup2;)=0,3·(c&sup1;<SUB>r</SUB>-c&sup2;<SUB>r</SUB>)+0,59·(c&sup1;<SUB>g</SUB>-c&sup2;<SUB>g</SUB>)+0,11·(c&sup1;<SUB>b</SUB>-c&sup2;<SUB>b</SUB>) 
</CODE>.&nbsp; 
<P>每一个簇可以有多个连接部件。</P>
<DIV>图像 <CODE>src</CODE> 和 <CODE>dst</CODE> 应该是 8-比特、单通道 或 3-通道图像,且大小一样 
<HR>

<H2><A name=cv_imgproc_ccomp>连接部件</A></H2>
<HR>

<H3><A name=decl_CvConnectedComp>CvConnectedComp</A></H3>
<P class=Blurb>连接部件</P><PRE>    typedef struct CvConnectedComp
    {
        double area; /* 连通域的面积 */
        float value; /* 分割域的灰度缩放值 */
        CvRect rect; /* 分割域的 ROI */
    } CvConnectedComp;
</PRE>
<HR>

<H3><A name=decl_cvFloodFill>FloodFill</A></H3>
<P class=Blurb>用指定颜色填充一个连接域</P><PRE>void cvFloodFill( CvArr* image, CvPoint seed_point, CvScalar new_val,
                  CvScalar lo_diff=cvScalarAll(0), CvScalar up_diff=cvScalarAll(0),
                  CvConnectedComp* comp=NULL, int flags=4, CvArr* mask=NULL );
#define CV_FLOODFILL_FIXED_RANGE (1 &lt;&lt; 16)
#define CV_FLOODFILL_MASK_ONLY   (1 &lt;&lt; 17)
</PRE>
<P>
<DL>
  <DT>image
  <DD>输入的 1- 或 3-通道, 8-比特或浮点数图像。输入的图像将被函数的操作所改变,除非你选则 CV_FLOODFILL_MASK_ONLY 选项 
  (见

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -