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

📄 c+m+b mmvi opencv 编程入门.htm

📁 When I use opencv, I use this very useful paper to begin the study. This is all I searched from the
💻 HTM
📖 第 1 页 / 共 5 页
字号:
          color=#0000ff>其他数据结构</FONT></U></A> </LI></UL><BR>
        <LI><A 
        href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
        color=#0000ff>图像处理</FONT></U></A>&nbsp; 
        <UL>
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>创建与释放图像结构空间</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>读入与存储图像</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>读取图像元素</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>图像转换</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>绘图命令</FONT></U></A>&nbsp;</LI></UL><BR>
        <LI><A 
        href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
        color=#0000ff>矩阵操作</FONT></U></A>&nbsp; 
        <UL>
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>创建与释放矩阵结构空间</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>读取矩阵元素</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>矩阵/向量操作</FONT></U></A></LI></UL><BR>
        <LI><A 
        href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
        color=#0000ff>视频序列处理</FONT></U></A> 
        <UL>
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>从视频序列中抓取一帧</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>获取/设定帧信息</FONT></U></A> 
          <LI><A 
          href="http://yujian5.spaces.live.com/Blog/cns!6CDC9EF6CBD6E27C!531.entry?owner=1"><U><FONT 
          color=#0000ff>存储视频文件</FONT></U></A> </LI></UL></LI></UL>
      <P></P>
      <P></P>
      <P></P>
      <H1><A>简介</A> </H1>
      <P></P>
      <H2><A>OpenCV概述</A> </H2>
      <P></P>
      <UL>
        <LI>什么是OpenCV&nbsp; 
        <UL>
          <LI>开源C/C++计算机视觉库. 
          <LI>面向实时应用进行优化. 
          <LI>跨操作系统/硬件/窗口管理器. 
          <LI>通用图像/视频载入、存储和获取. 
          <LI>由中、高层API构成. 
          <LI>为Intel®公司的 Integrated Performance Primitives (IPP) 提供了透明接口. 
        </LI></UL>
        <P></P>
        <LI>特性: 
        <UL>
          <LI>图像数据操作 (分配,释放, 复制, 设定, 转换). 
          <LI>图像与视频 I/O (基于文件/摄像头输入, 图像/视频文件输出). 
          <LI>矩阵与向量操作与线性代数计算(相乘, 求解, 特征值, <FONT size=2>奇异值分解</FONT>SVD). 
          <LI>各种动态数据结构(列表, 队列, 集, 树, 图). 
          <LI>基本图像处理(滤波, 边缘检测, 角点检测, 采样与插值, 色彩转换, 形态操作, 直方图, 图像金字塔). 
          <LI>结构分析(连接成分, 轮廓处理, 距离转换, 模板匹配, Hough转换, 多边形近似, 线性拟合, 椭圆拟合, 
          Delaunay三角化). 
          <LI>摄像头标定&nbsp;(寻找并跟踪标定模板, 标定, 基础矩阵估计, homography估计, 立体匹配). 
          <LI>动作分析(光流, 动作分割, 跟踪). 
          <LI>对象辨识&nbsp;(特征方法, 隐马可夫链模型HMM). 
          <LI>基本GUI(显示图像/视频,&nbsp;键盘鼠标操作, 滚动条). 
          <LI>图像标识&nbsp;(直线, 圆锥, 多边形, 文本绘图) </LI></UL>
        <P></P>
        <LI>OpenCV 模块: 
        <UL>
          <LI><EM>cv</EM> - OpenCV 主要函数. 
          <LI><EM>cvaux</EM> -&nbsp;辅助 (实验性) OpenCV 函数. 
          <LI><EM>cxcore</EM> - 数据结构与线性代数算法. 
          <LI><EM>highgui</EM> - GUI函数. </LI></UL>
        <P></P></LI></UL>
      <P></P>
      <H2><A>资料链接</A> </H2>
      <P></P>
      <UL>
        <LI>参考手册: 
        <UL>
          <LI><TT>&lt;opencv-root&gt;/docs/index.htm</TT> </LI></UL>
        <P></P>
        <LI>网络资源: 
        <UL>
          <LI>官方网页: <TT>http://www.intel.com/technology/computing/opencv/</TT> 
          <P></P>
          <LI>软件下载: <TT>http://sourceforge.net/projects/opencvlibrary/</TT> 
          <P></P></LI></UL>
        <P></P>
        <LI>书籍: 
        <UL>
          <LI>Open Source Computer Vision Library by Gary R. Bradski, Vadim 
          Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006). 
          </LI></UL>
        <P></P>
        <LI>视频处理例程 (位于 <TT>&lt;opencv-root&gt;/samples/c/目录中</TT>): 
        <UL>
          <LI>色彩跟踪: <TT>camshiftdemo</TT> 
          <LI>点跟踪: <TT>lkdemo</TT> 
          <LI>动作分割: <TT>motempl</TT> 
          <LI>边缘检测: <TT>laplace</TT> </LI></UL>
        <P></P>
        <LI>图像处理例程(位于<TT>&lt;opencv-root&gt;/samples/c/目录中</TT>): 
        <UL>
          <LI>边缘检测: <TT>edge</TT> 
          <LI>分割: <TT>pyramid_segmentation</TT> 
          <LI>形态: <TT>morphology</TT> 
          <LI>直方图: <TT>demhist</TT> 
          <LI>距离转换: <TT>distrans</TT> 
          <LI>椭圆拟合&nbsp;<TT>fitellipse</TT> </LI></UL>
        <P></P></LI></UL>
      <P></P>
      <P></P>
      <H2><A>OpenCV 命名约定</A> </H2>
      <P></P>
      <UL>
        <LI>函数命名: <PRE>    cvActionTarget[Mod](...)<BR><BR>    Action = 核心功能(例如 设定set, 创建create)<BR>    Target = 操作目标 (例如 轮廓contour, 多边形polygon)<BR>    [Mod]  = 可选修饰词 (例如说明参数类型)<BR></PRE>
        <P></P>
        <LI>矩阵数据类型: <PRE>    CV_&lt;bit_depth&gt;(S|U|F)C&lt;number_of_channels&gt;<BR><BR>    S = 带符号整数<BR>    U = 无符号整数<BR>    F = 浮点数 <BR><BR>    例:   CV_8UC1 表示一个8位无符号单通道矩阵, <BR>          CV_32FC2 表示一个32位浮点双通道矩阵.<BR></PRE>
        <P></P>
        <LI>图像数据类型: <PRE>    IPL_DEPTH_&lt;bit_depth&gt;(S|U|F)<BR><BR>    例:   IPL_DEPTH_8U 表示一个8位无符号图像.<BR>          IPL_DEPTH_32F 表示一个32位浮点数图像.<BR></PRE>
        <P></P>
        <LI>头文件: <PRE>    #include &lt;cv.h&gt;<BR>    #include &lt;cvaux.h&gt;<BR>    #include &lt;highgui.h&gt;  <BR>    #include &lt;cxcore.h&gt;   // 不必要 - 该头文件已在 cv.h 文件中包含<BR></PRE>
        <P></P></LI></UL>
      <P></P>
      <H2><A>编译命令</A> </H2>
      <P></P>
      <UL>
        <LI>Linux系统: <PRE>g++ hello-world.cpp -o hello-world \<BR>    -I /usr/local/include/opencv -L /usr/local/lib  \<BR>    -lm -lcv -lhighgui -lcvaux<BR></PRE>
        <P></P>
        <LI>Windows系统: <PRE>注意在项目属性中设好OpenCV头文件以及库文件的路径.<BR></PRE>
        <P></P></LI></UL>
      <P></P>
      <P></P>
      <H2><A>C程序实例</A> </H2>
      <P><FONT size=-1></FONT></P>
      <P><FONT size=-1></FONT></P><PRE>////////////////////////////////////////////////////////////////////////<BR>//<BR>// hello-world.cpp<BR>//<BR>// 一个简单的OpenCV程序<BR>// 它从一个文件中读取图像,将色彩值颠倒,并显示结果. <BR>//<BR>////////////////////////////////////////////////////////////////////////<BR>#include &lt;stdlib.h&gt;<BR>#include &lt;stdio.h&gt;<BR>#include &lt;math.h&gt;<BR>#include &lt;cv.h&gt;<BR>#include &lt;highgui.h&gt;<BR><BR><BR>int main(int argc, char *argv[])<BR>{<BR>  IplImage* img = 0; <BR>  int height,width,step,channels;<BR>  uchar *data;<BR>  int i,j,k;<BR><BR>  if(argc&lt;2){<BR>    printf("Usage: main &lt;image-file-name&gt;\n\7");<BR>    exit(0);<BR>  }<BR><BR>  // 载入图像  <BR>  img=cvLoadImage(argv[1]);<BR>  if(!img){<BR>    printf("Could not load image file: %s\n",argv[1]);<BR>    exit(0);<BR>  }<BR><BR>  // 获取图像数据<BR>  height    = img-&gt;height;<BR>  width     = img-&gt;width;<BR>  step      = img-&gt;widthStep;<BR>  channels  = img-&gt;nChannels;<BR>  data      = (uchar *)img-&gt;imageData;<BR>  printf("Processing a %dx%d image with %d channels\n",height,width,channels); <BR><BR>  // 创建窗口<BR>  cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); <BR>  cvMoveWindow("mainWin", 100, 100);<BR><BR>  // 反色图像<BR>  for(i=0;i&lt;height;i++) for(j=0;j&lt;width;j++) for(k=0;k&lt;channels;k++)<BR>    data[i*step+j*channels+k]=255-data[i*step+j*channels+k];<BR><BR>  // 显示图像<BR>  cvShowImage("mainWin", img );<BR><BR>  // wait for a key<BR>  cvWaitKey(0);<BR><BR>  // release the image<BR>  cvReleaseImage(&amp;img );<BR>  return 0;<BR>}<BR></PRE><FONT 
      size=-1></FONT>
      <P><FONT size=-1></FONT></P>
      <P></P>
      <P></P>
      <H1><A>GUI命令</A> </H1>
      <P></P>
      <H2><A>窗口管理</A> </H2>
      <P></P>
      <UL>
        <LI>创建并放置一个窗口: <PRE>  cvNamedWindow("win1", CV_WINDOW_AUTOSIZE); <BR>  cvMoveWindow("win1", 100, 100); // 以屏幕左上角为起点的偏移量<BR></PRE>
        <P></P>
        <LI>读入图像: <PRE>  IplImage* img=0; <BR>  img=cvLoadImage(fileName);<BR>  if(!img) printf("Could not load image file: %s\n",fileName);<BR></PRE>
        <P></P>
        <LI>显示图像: <PRE>  cvShowImage("win1",img);<BR></PRE>
        <P>可显示彩色或灰度的字节/浮点图像。&nbsp;彩色图像数据认定为BGR顺序. </P>
        <P></P>
        <LI>关闭窗口: <PRE>  cvDestroyWindow("win1");<BR></PRE>
        <P></P>
        <LI>改变窗口尺寸: <PRE>  cvResizeWindow("win1",100,100); // 新的宽/高值(象素点)</PRE>
        <P></P></LI></UL>
      <P></P>
      <P></P>
      <H2><A>输入设备</A>&nbsp;</H2>

⌨️ 快捷键说明

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