# include“ltsgm.h”
L_LTSGM_APIL_INTL_MrcSegmentBitmap (hSegment, pBitmap, pSegOption)
自动分段指定的位图,找到最佳的段组合,而不指定最小的段尺寸。
一个现有的分段句柄。方法获得此句柄L_MrcStartBitmapSegmentation函数。
指向引用要分段的位图的位图句柄的指针。
指向SEGMENTEXTOPTIONS结构,控制自动分割过程。不能为NULL。
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
调用此函数自动分割位图。LEAD将对位图进行处理,并将其分解为适当的图片、灰度、文本和背景段。
调用L_MrcStartBitmapSegmentation函数,然后再使用任何分割函数。段的句柄不再需要时,调用L_MrcStopBitmapSegmentation函数。
必需的dll和库
下面的例子加载一个位图,然后执行自动分割
使用L_MrcSegmentBitmap函数。
/* pMRCENUMSEGMENTSPROC回调函数*/
静态L_INT EXT_CALLBACK EnumAutoSegments (HSEGMENTATION hSegment,
常量pSEGMENTDATA pSegment,
L_INT nSegId,
L_VOID * pUserData)
{
UNREFERENCED_PARAMETER (hSegment);
UNREFERENCED_PARAMETER (pUserData);
L_UINT SegArea;
L_TCHAR szSegmentId [256];
memset(szSegmentId, 0, 256);
wsprintf (szSegmentId文本("段%d中的段大小错误"), nSegId);
SegArea = (pSegment->rcBitmapSeg.)->rcBitmapSeg.top) *
(pSegment - > rcBitmapSeg。right - pSegment->rcBitmapSeg.left);
如果(SegArea == 0)
消息框(NULL, szSegmentId, TEXT(“错误”), MB_OK);
返回成功;
}
L_INT MrcSegmentBitmapExample(pBITMAPHANDLE)
{
/*加载一个24位图像
HSEGMENTATION HSEGMENTATION;
SEGMENTEXTOPTIONS SegExtOption;
L_INT nRet;
/*指定最小段宽和高度*/
SegExtOption。uStructSize =运算符(SEGMENTEXTOPTIONS);
SegExtOption。uBackGroundThreshold = 10;
SegExtOption。uSegmentQuality = 50;
SegExtOption。uColorThreshold = 25;
SegExtOption。uCleanSize = 5;
SegExtOption。uCombineThreshold = 75;
SegExtOption。uFlags = SGM_WITHOUTBKGRND |
SGM_FAVOR_TWOBIT;
/*启动分割过程*/
nRet = L_MrcStartBitmapSegmentation (&hSegmentation, pBitmap, RGB(255,255,255), RGB(0,0,0));
如果(nRet != SUCCESS)
返回nRet;
/*做的汽车分割* /
nRet = L_MrcSegmentBitmap(hSegmentation, pBitmap, &SegExtOption);
如果(nRet != SUCCESS)
返回nRet;
L_MrcEnumSegments(hSegmentation, (pMRCENUMSEGMENTSPROC)&EnumAutoSegments, NULL, 0);
/*结束分割过程*/
nRet = L_MrcStopBitmapSegmentation(hSegmentation);
如果(nRet != SUCCESS)
返回nRet;
返回成功;
}