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

📄 magicscissorsdoc.h

📁 刚上传内容的相关CODEC不能单独上传。于是
💻 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 + -