StereoPlusDlg.h
上传用户:fengshi120
上传日期:2014-07-17
资源大小:6155k
文件大小:3k
源码类别:

3D图形编程

开发平台:

C/C++

  1. // StereoPlusDlg.h : header file
  2. //
  3. #pragma once
  4. #include "StereoMatching.h"
  5. #include <gdiplus.h>
  6. #include "ControlGroup.h"
  7. #include "afxwin.h"
  8. // CStereoPlusDlg dialog
  9. class CStereoPlusDlg : public CDialog
  10. {
  11. // Construction
  12. public:
  13. CStereoPlusDlg(CWnd* pParent = NULL); // standard constructor
  14. CStereoPlusDlg::~CStereoPlusDlg();
  15. bool m_bClosing;
  16. // Dialog Data
  17. enum { IDD = IDD_STEREOPLUS_DIALOG };
  18. protected:
  19. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  20. CControlGroup m_SADControls;
  21. CString m_strLeftImagePath;
  22. CString m_strRightImagePath;
  23. CString m_strImagePairPath;
  24. // image pre-processing
  25. void ResampleBitmap(Bitmap *&pBitmap,UINT iNewWidth);
  26. void SwapImages(void);
  27. BOOL m_bResample;
  28. BOOL m_bImagesAreSwapped;
  29. Bitmap* m_pLeftImageBitmap;
  30. Bitmap* m_pRightImageBitmap;
  31. Bitmap* m_pDisparityBitmap;
  32. BYTE* m_pLeftBitmapData;
  33. BYTE* m_pRightBitmapData;
  34. float m_fFocalLength;
  35. float m_fBaseLine;
  36. //David's stuff
  37. Reconst3D   m_Reconst3d; // 3d reconstruction module, etc...
  38. StereoImage m_StereoData; // disparity, subpixel, etc...
  39. ReconstPoints3D* m_pPts3d; // 3d reconstruction 
  40. StereoMatching* m_pStereoContext;
  41. bool Save3DReconst(CString filename);
  42. void estereo_process(StereoMatching* stereo, bool propag_stereo,StereoImage* simage,
  43.      const char* imLeft, const char* imRight, 
  44.  int width, int height, int xOffset, int yOffset);
  45. void InitStereoContext();
  46. void ComputeStereo(void);
  47. ////
  48. bool m_bNewFilesLoaded;
  49. BYTE* GetGrayScaleData(Bitmap* pBitmap);
  50. void DrawBitmap(UINT idWindow,Bitmap *pBitmap);
  51. bool m_bSizeChanged;
  52. void ArrangeControls(void);
  53. bool m_bGreyScaleDataLoaded;
  54. float m_fExtentX;
  55. float m_fExtentZ;
  56. // Implementation
  57. protected:
  58. HICON m_hIcon;
  59. void GroupControl(UINT idFrame,UINT idControl);
  60. // Generated message map functions
  61. virtual BOOL OnInitDialog();
  62. afx_msg void OnPaint();
  63. afx_msg HCURSOR OnQueryDragIcon();
  64. DECLARE_MESSAGE_MAP()
  65. public:
  66. afx_msg void OnBnClickedButtonLoadLeft();
  67. afx_msg void OnDestroy();
  68. afx_msg void OnSize(UINT nType, int cx, int cy);
  69. afx_msg void OnBnClickedButtonLoadRight();
  70. afx_msg void OnBnClickedButtonLoadPair();
  71. afx_msg void OnBnClickedButtonDoStereo();
  72. afx_msg void OnDeltaposSpinDisparityrange(NMHDR *pNMHDR, LRESULT *pResult);
  73. afx_msg void OnDeltaposSpinHoropter(NMHDR *pNMHDR, LRESULT *pResult);
  74. afx_msg void OnDeltaposSpinCorrwinsize(NMHDR *pNMHDR, LRESULT *pResult);
  75. afx_msg void OnDeltaposSpinSadthresh(NMHDR *pNMHDR, LRESULT *pResult);
  76. afx_msg void OnDeltaposSpinDisparityscale(NMHDR *pNMHDR, LRESULT *pResult);
  77. afx_msg void OnBnClickedCheckStereoPropagation();
  78. int m_iDisparityRange;
  79. int m_iHoropter;
  80. int m_iCorrelationWindow;
  81. int m_iSADThreshold;
  82. int m_iDisparityImageScale;
  83. BOOL m_bPropagateStereo;
  84. afx_msg void OnClose();
  85. afx_msg void OnBnClickedButtonDoReconstructionDirectx();
  86. BOOL m_bSwapLeftRight;
  87. afx_msg void OnBnClickedCheckSwap();
  88. CButton m_ctrlCheckSwapLeftRight;
  89. CButton m_ctrlResampleImages;
  90. int m_iImageResampleWidth;
  91. int m_iImageXTranslation; // translate image 
  92. int m_iImageYTranslation; // translate image 
  93. afx_msg void OnBnClickedCheckResample();
  94. CEdit m_ctrlEditResampleWidth;
  95. afx_msg void OnDeltaposSpinXtranslate(NMHDR *pNMHDR, LRESULT *pResult);
  96. afx_msg void OnDeltaposSpinYtranslate(NMHDR *pNMHDR, LRESULT *pResult);
  97. afx_msg void OnBnClickedButtonSavedisparity();
  98. };