L_WatershedBitmap

# include“ltimgcor.h”

L_LTIMGCOR_APIL_INTL_WatershedBitmap(pBitmap, ppPoints, pLengths, nSize)

使用分水岭算法将图像分割成不同的部分。

参数

pBITMAPHANDLEpBitmap

位图句柄的指针。

L_POINT* * ppPoints

保存表示要分割位图的点或路径的初始点/路径。

L_INT* pLengths

每条路径上的点数。

L_INTnSize

路径数。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

每个片段的像素都有相同的颜色。分水岭算法将图像视为地形表面。

深色区域是盆地。浅色区域是盆地周围的山脊。

用户负责确定输出段的数量以及每个段在输入数组中的位置。

该功能支持8位和16位灰度和彩色图像以及24位和32位彩色图像。

此函数不支持32位灰度图像。

该函数支持有符号/无符号图像。

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

这个例子加载一个位图并应用分水岭分割。

L_INT WatershedBitmapExample (L_VOID)L_INT nRet;BITMAPHANDLE LeadBitmap;/*存放加载图像的位图句柄。* //*加载位图,保持文件的每像素位nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“IMAGE3.dcm”&LeadBitmap)),运算符(bitmaphandle), 0, order_bgr, null, null);如果(nRet ! =成功)返回nRet;/*应用WatershedBitmap过滤器*/L_POINT* ppPoints[4] = {};[4] = {};L_INT nSize = 4;(L_INT i = 0;i < nSize;我+ +)长度[i] = 2;ppPoints[i] = (L_POINT*) malloc(长度[i]* .运算符(L_POINT));如果(ppPoints[i] == NULL)(L_INT j = 0;j < nSize;j + +)如果(ppPoints[j] != NULL)免费(ppPoints [j]);如果(LeadBitmap.Flags.Allocated)L_FreeBitmap (&LeadBitmap);返回ERROR_NOT_ENOUGH_MEMORY;ppPoints[0][0]。X = 35;ppPoints[0][0]。Y = 100;ppPoints[0][1]。X = 35;ppPoints[0][1]。Y = 200;ppPoints[1][0]。X = 180;ppPoints[1][0]。Y = 115;ppPoints[1][1]。X = 300;ppPoints[1][1]。Y = 115;ppPoints[2][0]。X = 235;ppPoints[2][0]。Y = 220;ppPoints[2][1]。X = 260;ppPoints[2][1]。Y = 220;ppPoints[3][0]。X = 180;ppPoints[3][0]。Y = 330;ppPoints[3][1]。X = 350;ppPoints[3][1]。Y = 330;nRet = L_WatershedBitmap(&LeadBitmap, ppPoints,长度,nSize);(L_INT j = 0;j < nSize;j + +)免费(ppPoints [j]);如果(nRet == SUCCESS)L_SaveBitmap(MAKE_IMAGE_PATH(TEXT)“Result.BMP”)), &LeadBitmap, FILE_BMP, 24, 0, NULL);/ /免费的位图如果(LeadBitmap.Flags.Allocated)L_FreeBitmap (&LeadBitmap);返回nRet;

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。