📄 merger3.h
字号:
// Merger3.h: interface for the CMerger class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(_MERGER3_H_)
#define _MERGER3_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class IERegionVertax;
class IERag;
class IEDib;
class CMerger3
{
public:
CMerger3();
virtual ~CMerger3();
public:
// 捞固瘤 农扁父怒狼 2瞒盔 硅凯.
// 阿 侨伎狼 蔼篮 弊 侨伎捞 加茄 康开狼 绊蜡 锅龋甫 唱鸥辰促.
int** m_pLabelMap;
// 捞固瘤 农扁父怒狼 2瞒盔 硅凯.
// 阿 侨伎狼 蔼篮 悼老茄 康开狼 促澜 侨伎狼 困摹甫 唱鸥辰促.
// -1篮 康开狼 付瘤阜烙阑 唱鸥辰促.
int** m_pPixelList;
// 康开甸狼 沥焊甫 RAG肺 钎泅窍绊, 弊 庆歹甫 糕滚肺 爱绰促.
IERag* m_pRag;
// 涝仿 康惑狼 农扁
int m_nWidth, m_nHeight;
public:
// m_pRag甫 扁霖栏肺 搬苞 康惑狼 侨伎蔼阑 悸泼茄促.
void GetOutputImage(IEDib* pDib);
// 泅犁 惑怕狼 region segment狼 俺荐甫 馆券茄促.
int GetSegmentNum();
// 累篮 康开阑 林函狼 奴 康开栏肺 捍钦茄促.
// 累篮 康开捞 弊 磊眉肺 绊蜡狼 漂隆阑 啊瘤绊 乐栏搁 捍钦窍瘤 臼绰促.
int MergeSmallRegions();
// Filling 舅绊府硫阑 捞侩窍咯 region labeling阑 荐青窍绊,
// RAG甫 备己茄促.
BOOL FromLabel(int** pImage, IEDib* pDib, float** pGrad, int nWidth, int nHeight);
//
int Merge(int nSmall, int nLarge);
// nIndex1俊 秦寸窍绰 vertax客 nIndex2俊 秦寸窍绰 vertax狼
// 康开 乞闭 祸惑狼 瞒捞甫 拌魂窍咯 馆券茄促.
float CalDist(IERegionVertax* pHeadVertax, IERegionVertax* pVertax, float cw = 0.5f);
protected:
// m_pRegionMap 苞 m_pPixelList 狼 皋葛府 傍埃阑 且寸茄促.
void AllocBuffers();
// 且寸茄 皋葛府 傍埃阑 秦力茄促.
void FreeBuffers();
// nSmall捞 merge瞪 康开狼 index甫 馆券茄促.
void FindClosestNeighbor(int nSmall, float cw, int& nLarge, float& min_dist);
// 阿 康开狼 乞闭 祸惑阑 head vertax 府胶飘俊 粮犁窍绰
// vertax狼 m_nValue肺 历厘茄促.
// Head vertax 父阑 促风扁锭巩俊 龋免 矫扁甫 肋 急沥秦具 茄促.
void UpdateVertaxValue(IEDib* pDib);
// pImage[y][x] 甫 器窃窍绰 康开阑 filling algorithm 阑 捞侩窍咯
// 胶某醋窍搁辑, pLabelMap[y][x]甫 1肺 汲沥茄促.
int FillRegion(int x, int y, int pidx, int** pImage,
IERegionVertax* pRegion, int pl, int pr, int flag);
// FillArea 窃荐俊辑 龋免登绰 helper functions
int ScanLeft(int x, int y, int** pImage);
int ScanRight(int x, int y, int** pImage);
};
#endif // !defined(_MERGER3_H_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -