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

📄 opencvref_cv.cn.htm

📁 opencv 中文文档 关于opencv 的所有函数
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<dt>operation<dd>形态操作的类型:<br>               <code>CV_MOP_OPEN</code> - 开运算<br>                              <code>CV_MOP_CLOSE</code> - 闭运算<br>                              <code>CV_MOP_GRADIENT</code> - 形态梯度<br>                               <code>CV_MOP_TOPHAT</code> - &quot;顶帽&quot;<br>                               <code>CV_MOP_BLACKHAT</code> - &quot;黑帽&quot;<br>                <dt>iterations<dd>膨胀和腐蚀次数.</dl><p>函数 <a href="#decl_cvMorphologyEx">cvMorphologyEx</a>                  在膨胀和腐蚀基本操作的基础上,完成一些高级的形态变换:</p>                <pre>开运算:dst=open(src,element)=dilate(erode(src,element),element)闭运算:dst=close(src,element)=erode(dilate(src,element),element)形态梯度dst=morph_grad(src,element)=dilate(src,element)-erode(src,element)&quot;顶帽&quot;:dst=tophat(src,element)=src-open(src,element)&quot;黑帽&quot;:dst=blackhat(src,element)=close(src,element)-src</pre><p>临时图像 <code>temp</code>                  在形态梯度以及对“顶帽”和“黑帽”操作时的 in-place                 模式下需要。</p><hr><h2><a name="cv_imgproc_filters">滤波器与彩色变换</a></h2><hr><h3><a name="decl_cvSmooth">Smooth</a></h3><p class="Blurb">各种方法的图像平滑</p><pre>void cvSmooth( const CvArr* src, CvArr* dst,               int smoothtype=CV_GAUSSIAN,               int param1=3, int param2=0, double param3=0 );</pre><p><dl><dt>src<dd>输入图像.<dt>dst<dd>输出图像.<dt>smoothtype<dd>平滑方法:<ul>   <li>CV_BLUR_NO_SCALE (简单不带尺度变换的模糊) - 对每个象素的                   <code>param1</code>&times;<code>param2</code>    领域求和。如果邻域大小是变化的,可以事先利用函数 <a href="#decl_cvIntegral">cvIntegral</a>                   计算积分图像。                   <li>CV_BLUR (simple blur) - 对每个象素<code>param1</code>&times;<code>param2</code>邻域&nbsp;<code></code>     求和并做尺度变换 1/(<code>param1</code>&bull;<code>param2</code>).                    <li>CV_GAUSSIAN (gaussian blur) - 对图像进行核大小为 <code>param1</code>&times;<code>param2</code>                    的高斯卷积                   <li>CV_MEDIAN (median blur) - 对图像进行核大小为<code>param1</code>&times;<code>param1</code>                   的中值滤波 (i.e. 邻域是方的).                   <li>CV_BILATERAL (双向滤波) - 应用双向 3x3 滤波,彩色 sigma=<code>param1</code>,空间 sigma=<code>param2</code>.                   关于双向滤波,可参考 <a href="http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html">http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html</a>                </ul><dt>param1<dd>平滑操作的第一个参数.<dt>param2<dd>平滑操作的第二个参数. 对于简单/非尺度变换的高斯模糊的情况,如果<code>param2的值</code>                  为零,则表示其被设定为<code>param1。</code>                <dt>param3<dd>对应高斯参数的 Gaussian sigma (标准差).     如果为零,则标准差由下面的核尺寸计算:<pre>              sigma = (n/2 - 1)*0.3 + 0.8, 其中 n=param1 对应水平核,                                                n=param2 对应垂直核.              </pre>  对小的卷积核 (3&times;3 to 7&times;7) 使用如上公式所示的标准 sigma                   速度会快。如果 <code>param3</code>  不为零,而 <code>param1</code>                    和 <code>param2</code>                     为零,则核大小有 sigma 计算 (以保证足够精确的操作).                   </dl><p>函数 <a href="#decl_cvSmooth">cvSmooth</a>                  可使用上面任何一种方法平滑图像。每一种方法都有自己的特点以及局限。</p>                <p align="left">没有缩放的图像平滑仅支持单通道图像,并且支持8位到16位的转换(与cvSobel和cvaplace相似)和32位浮点数到32位浮点数的变换格式。</p><p>简单模糊和高斯模糊支持 1-                 或 3-通道, 8-比特 和 32-比特 浮点图像。这两种方法可以(in-place)方式处理图像。</p>                <p>中值和双向滤波工作于 1- 或 3-通道, 8-位图像,但是不能以                 in-place 方式处理图像.</p>                <hr><h3><a name="decl_cvFilter2D">Filter2D</a></h3><p class="Blurb">对图像做卷积</p><pre>void cvFilter2D( const CvArr* src, CvArr* dst,                 const CvMat* kernel,                 CvPoint anchor=cvPoint(-1,-1));#define cvConvolve2D cvFilter2D</pre><p><dl><dt>src<dd>输入图像.<dt>dst<dd>输出图像.<dt>kernel<dd>卷积核, 单通道浮点矩阵.                   如果想要应用不同的核于不同的通道,先用 <a href="opencvref_cxcore.htm#decl_cvSplit">cvSplit</a>                   函数分解图像到单个色彩通道上,然后单独处理。                <dt>anchor<dd>核的锚点表示一个被滤波的点在核内的位置。                   锚点应该处于核内部。缺省值 (-1,-1) 表示锚点在核中心。                </dl><p>函数 <a href="#decl_cvFilter2D">cvFilter2D</a>                  对图像进行线性滤波,支持 In-place   操作。当核运算部分超出输入图像时,函数从最近邻的图像内部象素差值得到边界外面的象素值。</p><hr><h3><a name="decl_cvIntegral">Integral</a></h3><p class="Blurb">计算积分图像</p><pre>void cvIntegral( const CvArr* image, CvArr* sum, CvArr* sqsum=NULL, CvArr* tilted_sum=NULL );</pre><p><dl><dt>image<dd>输入图像, <code>W</code>&times;<code>H</code>, 单通道,8位或浮点 (32f                   或 64f).                    <dt>sum<dd>积分图像, <code>W+1</code>&times;<code>H+1(译者注:原文的公式应该写成(W+1)</code>&times;<code>(H+1),避免误会)</code>, 单通道,32位整数或 double                   精度的浮点数(64f).   <dt>sqsum<dd>对象素值平方的积分图像,<code>W+1</code>&times;<code>H+1(译者注:原文的公式应该写成(W+1)</code>&times;<code>(H+1),避免误会)</code>,                   单通道,32位整数或 double 精度的浮点数 (64f).                   <dt>tilted_sum<dd>旋转45度的积分图像,单通道,32位整数或 double                   精度的浮点数 (64f).                   </dl><p>函数 <a href="#decl_cvIntegral">cvIntegral</a>                  计算一次或高次积分图像:</p>                <pre>sum(X,Y)=sum<sub>x&lt;X,y&lt;Y</sub>image(x,y)sqsum(X,Y)=sum<sub>x&lt;X,y&lt;Y</sub>image(x,y)<sup>2</sup>tilted_sum(X,Y)=sum<sub>y&lt;Y,abs(x-X)&lt;y</sub>image(x,y)</pre><p>利用积分图像,可以计算在某象素的上-右方的或者旋转的矩形区域中进行求和、求均值以及标准方差的计算,并且保证运算的复杂度为O(1)。例如:</p>             <p><br>sum<sub>x1&lt;=x&lt;x2,y1&lt;=y&lt;y2</sub>image(x,y)=sum(x2,y2)-sum(x1,y2)-sum(x2,y1)+sum(x1,x1)<br></p><p>因此可以在变化的窗口内做快速平滑或窗口相关等操作。</p><hr><h3><a name="decl_cvCvtColor">CvtColor</a></h3><p class="Blurb">色彩空间转换</p><pre>void cvCvtColor( const CvArr* src, CvArr* dst, int code );</pre><p><dl><dt>src<dd>输入的 8-比特 或浮点图像.                <dt>dst<dd>输出的 8-比特 或浮点图像.                <dt>code<dd>色彩空间转换,通过定义                 CV_&lt;src_color_space&gt;2&lt;dst_color_space&gt; 常数 (见下面).                </dl><p>函数 <a href="#decl_cvCvtColor">cvCvtColor</a>  将输入图像从一个色彩空间转换为另外一个色彩空间。函数忽略                 <code>IplImage</code>  头中定义的 <code>colorModel</code>  和 <code>channelSeq</code>                  域,所以输入图像的色彩空间应该正确指定 (包括通道的顺序,对RGB空间而言,BGR                 意味着布局为 B<sub>0</sub> G<sub>0</sub> R<sub>0</sub> B<sub>1</sub> G<sub>1</sub> R<sub>1</sub> ...   层叠的 24-位格式,而 RGB 意味着布局为 R<sub>0</sub> G<sub>0</sub> B<sub>0</sub> R<sub>1</sub> G<sub>1</sub> B<sub>1</sub> ...                 层叠的24-位格式. 函数做如下变换:<ul>                <li>RGB 空间内部的变换,如增加/删除 alpha                   通道,反相通道顺序,到16位&nbsp; RGB彩色或者15位RGB彩色的正逆转换(Rx5:Gx6:Rx5),以及到灰度图像的正逆转换,使用:                  <pre>RGB[A]-&gt;Gray: Y=0.212671*R + 0.715160*G + 0.072169*B + 0*AGray-&gt;RGB[A]: R=Y G=Y B=Y A=0</pre>  <p>所有可能的图像色彩空间的相互变换公式列举如下:</p><p></p><li>RGB&lt;=&gt;XYZ (CV_BGR2XYZ, CV_RGB2XYZ, CV_XYZ2BGR, CV_XYZ2RGB):                    <pre>|X|   |0.412411  0.357585  0.180454| |R||Y| = |0.212649  0.715169  0.072182|*|G||Z|   |0.019332  0.119195  0.950390| |B||R|   | 3.240479  -1.53715  -0.498535| |X||G| = |-0.969256   1.875991  0.041556|*|Y||B|   | 0.055648  -0.204043  1.057311| |Z|</pre><p></p><li>RGB&lt;=&gt;YCrCb (CV_BGR2YCrCb, CV_RGB2YCrCb, CV_YCrCb2BGR, CV_YCrCb2RGB)                    <pre>Y=0.299*R + 0.587*G + 0.114*BCr=(R-Y)*0.713 + 128Cb=(B-Y)*0.564 + 128R=Y + 1.403*(Cr - 128)G=Y - 0.344*(Cr - 128) - 0.714*(Cb - 128)B=Y + 1.773*(Cb - 128)</pre><p></p><li>RGB=>HSV (CV_BGR2HSV,CV_RGB2HSV)                    <pre>V=max(R,G,B)S=(V-min(R,G,B))*255/V   if V!=0, 0 otherwise       (G - B)*60/S,  if V=RH= 180+(B - R)*60/S,  if V=G   240+(R - G)*60/S,  if V=Bif H&lt;0 then H=H+360</pre>  <p>使用上面从 0&deg; 到 360&deg; 变化的公式计算色调(hue)值,确保它们被                   2 除后能适用于8位。                  </p><p></p><li>RGB=>Lab (CV_BGR2Lab, CV_RGB2Lab)                    <pre>|X|   |0.433910  0.376220  0.189860| |R/255||Y| = |0.212649  0.715169  0.072182|*|G/255||Z|   |0.017756  0.109478  0.872915| |B/255|L = 116*Y<sup>1/3</sup>      for Y&gt;0.008856L = 903.3*Y      for Y&lt;=0.008856a = 500*(f(X)-f(Y))b = 200*(f(Y)-f(Z))where f(t)=t<sup>1/3</sup>              for t&gt;0.008856      f(t)=7.787*t+16/116   for t&lt;=0.008856</pre>  上面的公式可以参考                    <a href="http://www.cica.indiana.edu/cica/faq/color_spaces/color.spaces.html">http://www.cica.indiana.edu/cica/faq/color_spaces/color.spaces.html</a><p></p><li>Bayer=>RGB (CV_BayerBG2BGR, CV_BayerGB2BGR, CV_BayerRG2BGR, CV_BayerGR2BGR,<br>                                 CV_BayerBG2RGB, CV_BayerRG2BGR, CV_BayerGB2RGB, CV_BayerGR2BGR,<br>                                 CV_BayerRG2RGB, CV_BayerBG2BGR, CV_BayerGR2RGB, CV_BayerGB2BGR)<p>Bayer                   模式被广泛应用于 CCD 和 CMOS 摄像头.                   它允许从一个单独平面中得到彩色图像,该平面中的 R/G/B                   象素点被安排如下:</p><p><table border=0 width=400><tr><td><font size=5 color="#ff0000"><p align="center">R</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#ff0000"><p align="center">R</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#ff0000"><p align="center">R</font></td></tr><tr><td><font size=5 color="#008000"><p align="center">G</font></td><td bgcolor="pink"><font size=5 color="#0000ff" ><p align="center">B</font></td><td bgcolor="pink"><font size=5 color="#008000" ><p align="center">G</font></td><td><font size=5 color="#0000ff"><p align="center">B</font></td><td><font size=5 color="#008000"><p align="center">G</font></td></tr><tr><td><font size=5 color="#ff0000"><p align="center">R</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#ff0000"><p align="center">R</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#ff0000"><p align="center">R</font></td></tr><tr><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#0000ff"><p align="center">B</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#0000ff"><p align="center">B</font></td><td><font size=5 color="#008000"><p align="center">G</font></td></tr><tr><td><font size=5 color="#ff0000"><p align="center">R</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#ff0000"><p align="center">R</font></td><td><font size=5 color="#008000"><p align="center">G</font></td><td><font size=5 color="#ff0000"><p align="center">R</font></td>

⌨️ 快捷键说明

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