Undistortion.h
上传用户:lijia5631
上传日期:2008-11-10
资源大小:1214k
文件大小:2k
源码类别:

视频捕捉/采集

开发平台:

MultiPlatform

  1. /**
  2.   * HandVu - a library for computer vision-based hand gesture
  3.   * recognition.
  4.   * Copyright (C) 2004 Mathias Kolsch, matz@cs.ucsb.edu
  5.   *
  6.   * This program is free software; you can redistribute it and/or
  7.   * modify it under the terms of the GNU General Public License
  8.   * as published by the Free Software Foundation; either version 2
  9.   * of the License, or (at your option) any later version.
  10.   *
  11.   * This program is distributed in the hope that it will be useful,
  12.   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.   * GNU General Public License for more details.
  15.   *
  16.   * You should have received a copy of the GNU General Public License
  17.   * along with this program; if not, write to the Free Software
  18.   * Foundation, Inc., 59 Temple Place - Suite 330, 
  19.   * Boston, MA  02111-1307, USA.
  20.   *
  21.   * $Id: Undistortion.h,v 1.8 2004/11/11 01:58:12 matz Exp $
  22. **/
  23. #if !defined(__UNDISTORTION_H__INCLUDED_)
  24. #define __UNDISTORTION_H__INCLUDED_
  25. #include <cv.h>
  26. #include <string>
  27. using namespace std;
  28. typedef struct _CvCameraParams
  29. {
  30.     float   focalLength[2];
  31.     float   distortion[4];
  32.     float   principalPoint[2];
  33.     float   matrix[9];
  34.     float   rotMatr[9];
  35.     float   transVect[3];
  36. }
  37. CvCameraParams;
  38. class Undistortion {
  39.  public:
  40.   Undistortion();
  41.   ~Undistortion();
  42.   
  43.  public:
  44.   void Initialize(int width, int height);
  45.   bool CanUndistort() const;
  46.   void Load(string filename);
  47.   void Undistort(IplImage* iplImage) const;
  48.   void Undistort(IplImage* srcImg, IplImage* dstImg) const; 
  49. protected:
  50.   bool                    m_can_undistort;
  51.   bool                    m_initialized;
  52.   /* camera parameters */
  53.   CvCameraParams          m_camera;
  54.   IplImage*               m_undist_img;
  55.   CvCameraParams          m_undistort_params;
  56.   IplImage*               m_undistort_data;
  57. };
  58. #endif // __UNDISTORTION_H__INCLUDED_