📄 magicscissorsdoc.h
字号:
// MagicScissorsDoc.h : interface of the CMagicScissorsDoc class
//
// Class Name : CMagicScissorsDoc
// Author : Minseok Choi, Hanyang Univ. Image Engineering Lab.
// Date : 2000. 12. 10
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_MAGICSCISSORSDOC_H__2B1CC2E8_A469_41FA_98BC_AF8A96A0D39C__INCLUDED_)
#define AFX_MAGICSCISSORSDOC_H__2B1CC2E8_A469_41FA_98BC_AF8A96A0D39C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Old/IEDib.h"
class CImage;
class CVideo;
class CEdgeList;
class CObjList;
class CFrameList;
class CFrameInfo;
class C3DObject;
class CPolygonList;
class CEdgeListStack;
class CObjListStack;
class CActiveContour;
class CMagicScissorsDoc : public CDocument
{
protected: // create from serialization only
CMagicScissorsDoc();
DECLARE_DYNCREATE(CMagicScissorsDoc)
// Attributes
public:
CView* m_pMain; // 悼康惑 view狼 器牢磐 历厘 函荐
CView* m_pSecond; // OpenGL view狼 器牢磐 历厘 函荐
CImage* m_pImage; // Image 器牢磐
CImage* m_pResultImage; // Result 器牢磐
CVideo* m_pVideo; // video 器牢磐
CImage* m_pEdgeMap; // Edge map捞 历厘瞪 Image 器牢磐
CImage* m_pDepthmap; // depthmap捞 历厘瞪 Image 器牢磐
CSize m_ImgSize; // 橇饭烙 捞固瘤 农扁
int m_nTotalFrame; // 悼康惑狼 傈眉 橇饭烙 荐
int m_nCurFrame; // 泅力 橇饭烙 锅龋
CEdgeList* m_pEdgeList; // 按眉 康开 汲沥俊 荤侩且 EdgeList 器牢磐
CEdgeList* m_pTempList; // 付快胶 框流烙俊 狼茄 Edge Segment甫 历厘且 EdgeList 器牢磐
CEdgeList* m_pModifyList; // 版拌 荐沥俊 荤侩且 EdgeList 器牢磐
CEdgeList* m_pEdgeUndoList; // 版拌 汲沥 Undo俊 荤侩且 EdgeList 器牢磐
CEdgeListStack* m_pEdgeListStack; // 版拌 汲沥 Undo甫 困茄 EdgeList stack 器牢磐
CObjListStack* m_pObjUndoStack; // Undo甫 困茄 ObjList stack 器牢磐
CObjList* m_pObjUndoList; // Undo俊 荤侩且 ObjList 器牢磐
CPoint m_ptConner[4]; // 沤祸 康开狼 内呈 痢狼 谅钎
CFrameList* m_pFrameList; // FrameList狼 器牢磐
CFrameInfo* m_pCurFrame; // 泅犁 橇饭烙俊辑 荤侩且 FrameInfo 器牢磐
CPolygonList* m_pPolygonList; // 康开 汗荤矫 荤侩登绰 polygon list 器牢磐
CString m_strVideoFile; // 悼康惑 颇老 捞抚
CString m_strDataFile; // 单捞磐 颇老 捞抚
CString m_strFileName; // 捞固瘤 颇老 捞抚
BOOL m_bEdge; // 悼康惑 橇饭烙 掘篮 饶, edge甫 八免 且 巴牢瘤 唱鸥郴绰 flag
CString m_strStereo; // interleave 捞固瘤 历厘 版肺
CString m_strLeft; // left 捞固瘤 历厘 版肺
CString m_strRight; // right 捞固瘤 历厘 版肺
CString m_strSeg; // segment 捞固瘤 历厘 版肺
int m_nStartFrame; // 矫累 橇饭烙 锅龋
int m_nEndFrame;
float m_fEdge[4]; // Deriche 拌荐
int m_nMode; // 悼康惑/multiple image
// Operations
public:
// 3D 康惑 焊扁 角青
BOOL OpenGLView();
// 悼康惑俊辑 促澜 橇饭烙阑 掘绰促, bEdge : edge map 眠免 咯何
BOOL GetNextFrame(BOOL bEdge = TRUE);
// 悼康惑俊辑 捞傈 橇饭烙阑 掘绰促.
BOOL GetPrevFrame();
// edge segment甫 备茄促, sp : 矫累痢 困摹, ep : 场痢 困摹
void FindEdge(CPoint sp, CPoint ep);
// line甫 备茄促, sp : 矫累痢 困摹, ep : 场痢 困摹
void FindLine(CPoint sp, CPoint ep);
// 备秦柳 edge segment甫 edge list俊 眠啊茄促.
void AddEdge();
// 眠啊等 edge segement甫 秒家 茄促.
void UndoEdge();
// 版拌 沤祸 康开阑 备茄促, sp : 矫累痢, ep : 场痢, w : 沤祸 气
void FindConner(CPoint sp, CPoint ep, int w);
// 沤祸 规氢阑 蝶扼 版拌甫 备茄促, x1,y1 : 矫累痢, x2,y2 : 场痢, pre : 捞傈俊 茫酒柳 edge
CPoint FindEdgePoint(int x1, int y1, int x2, int y2, CPoint pre);
// 货肺款 按眉 康开阑 眠啊茄促.
void AddNewObject();
// 版拌 荐沥阑 困茄 edge list甫 积己茄促.
void AddModify(CPoint point);
// 版拌甫 荐沥茄促.
void ModifyEdge();
// 按眉甫 昏力茄促.
BOOL DeleteObject();
// 版拌甫 乞藕拳茄促.
BOOL EdgeSmoothing();
// 付快胶 困摹狼 按眉甫 急琶茄促, point : 困摹谅钎
int SelectObject(CPoint point);
// 悼康惑俊辑 橇饭烙阑 茫酒埃促, n : 橇饭烙 锅龋, bEdge : edge map 积己 咯何何
void FindFrame(int n, BOOL bEdge=FALSE);
// 累诀茄 单捞磐甫 颇老俊 历厘茄促.
BOOL WriteDataFile(LPCTSTR strFileName);
// 单捞磐甫 颇老俊辑 佬绢 柯促
BOOL ReadDataFile(LPCTSTR strFileName);
// Undo甫 困茄 霖厚甫 茄促.
BOOL PrepareUndo();
// 货肺款 按眉甫 眠啊茄促, pEdgeList : 仸眉狼 edge list, p3DObject : 3D 按眉 沥焊
void AddNewObject(CEdgeList* pEdgeList, C3DObject* p3DObject);
// 捞傈 橇饭烙狼 按眉 版拌 沥焊甫 捞侩窍咯 泅犁 橇饭烙狼 版拌沥焊甫 备茄促.
void TraceEdge();
// 捞傈 橇饭烙狼 按眉 版拌沥焊甫 汗窍窍咯 polygon list甫 父电促.
void CopyPrev();
// segment等 按眉 沥焊甫 棺 texture甫 历厘茄促.
void WriteObject(LPCTSTR strFileName);
// stereo 康惑(l,r,i)阑 父甸绢 历厘茄促, angle : view angle
//void MakeStereoImage(float angle);
void MakeStereoImage(int vpos, int diff);
// 单捞磐甫 颇老肺 历厘茄促.
void DataSave();
void DetectEdge();
void DeleteFrameInfo(int stast, int end);
////////////////////////////////
// Active contour 眠啊 何盒 矫累
CActiveContour* m_pActiveContour;
// 瘤沥等 荤阿屈俊 措秦 Active contour甫 积己茄促.
void CreateActiveContour( CRect rect );
// Active contour肺 坷宏璃飘狼 版拌甫 眠免茄促.
void EvolveActiveContour();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMagicScissorsDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
virtual void OnCloseDocument();
//}}AFX_VIRTUAL
// Implementation
public:
void ConvertDIBtoIMAGE(IEDib* input, CImage*ouput);
void ConvertIMAGEtoDIB(CImage* input, IEDib* output);
virtual ~CMagicScissorsDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CMagicScissorsDoc)
afx_msg void OnDataSave();
afx_msg void OnDataOpen();
afx_msg void OnOpenGlView();
afx_msg void OnProperty();
afx_msg void OnEditUndo();
afx_msg void OnDataSaveas();
afx_msg void OnWriteObject();
afx_msg void OnSavePath();
afx_msg void OnBilateral();
afx_msg void OnWatershed();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAGICSCISSORSDOC_H__2B1CC2E8_A469_41FA_98BC_AF8A96A0D39C__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -