L_CorrelationListBitmap

# include“l_bitmap.h”

L_LTIMGCOR_APIL_INT如此,L_CorrelationListBitmap (pBitmap hCorList puListIndex, uMaxPoints, puNumOfPoints, uXStep, uYStep, uThreshold, uFlags)

比较了图像在hCorList pBitmap所有地区的相同的维度,发现那些匹配的部分根据相关的措施。

参数

pBITMAPHANDLEpBitmap

位图句柄指针引用的位图搜索。

HBITMAPLISThCorList

位图处理列表包含的图像搜索。所有的图像列表中应该有相同的尺寸。

点*如此之

指针数组的点。这个数组将充满了相关领域的起点。

L_UINT* puListIndex

指针指向一个无符号整数数组。这个数组将充满图像的索引匹配相关的领域。

L_UINTuMaxPoints

大小的数组。这也等于地区的最大数量pBitmap可以发现是相关的。

L_UINT* puNumOfPoints

指针变量更新区域的数量pBitmap在pCorBitmap关联到一个图像。它的最大价值uMaxPoints

L_UINTuXStep

步长在X方向上(图片宽度),以像素为单位。为达到最佳效果,使用1。

L_UINTuYStep

步长在Y方向上(以及图像高度),以像素为单位。为达到最佳效果,使用1。

L_UINTuThreshold

值,指示相关阈值,这是一个测量协会的两个区域必须被认为是相关的。如果一个图像之间的相关值hCorList和一个地区pBitmap小于阈值的相关性是不相关的。有效值范围从0(零相似)到100(完美的相似之处)。

L_UINT32uFlags

保留以供将来使用。必须是0。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

这个函数不支持已签名的数据图像。它返回错误代码ERROR_SIGNED_DATA_NOT_SUPPORTED如果签名数据图像是传递给这个函数。

这个函数图像的比较hCorList与所有的区域相同的维度pBitmap根据测量,发现这些地区相匹配的相关性。中的所有图像hCorList必须具有相同的尺寸。相关性是一个衡量两幅图像之间的协会(相似)。它从0(零相似)到100(完美的相似之处)。这个函数更新如此之参数与这些地区的原点pBitmap图像相似的地方hCorList大于的价值uThreshold同时更新puListIndex索引的形象。hCorList图像的尺寸必须小于或等于pBitmap维度。

例如:

  1. 选择位图的对象你想看。把它们放在hCorList。

    图像\ letterA.gif
    图像\ letterD.gif
  2. 选择一个位图,其中包含你搜索的对象,把它放进pBitmap。

    图像\ SampleTextSearch.gif
  3. 调用L_CorrelationListBitmap函数。

  4. 函数将更新如此之数组参数的起始点为每个区域的位图(左上角)pBitmap相关的形象在哪里hCorList大于阈值的相关性。矩形的高度和宽度是一样hCorList形象。

  5. 其结果是:

    图像\ SampleResults.gif

寻找一个对象在一个位图,使用L_CorrelationBitmap函数。

更新状态栏或检测用户中断在执行这个函数,引用L_SetStatusCallback

这个函数支持12和16位灰度和48和64位彩色图像。支持12和16位灰度和48和64位彩色图像是可用的文档和医疗成像工具包。

如果位图有一个区域,这个函数只在该地区工作。如果位图没有一个区域,这个函数作用于整个位图。

这个函数不支持32位灰度图像。它返回错误代码ERROR_GRAY32_UNSUPPORTED如果一个32位的灰度图像是传递给这个函数。

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

下面的示例加载位图,并应用相关列表过滤:

L_INT CorrelationListBitmapExample (L_VOID){L_INT nRet;BITMAPHANDLE LeadBitmap;BITMAPHANDLE TmpBitmap;HBITMAPLIST hCorList;点如此[10]= {0};L_UINT puListIndex [10] = {0};L_UINT uNumOfPoints;/ *加载位图,保持文件的比特每像素* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“clean.tif”&LeadBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“LetterA.cmp”&TmpBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);如果(nRet ! =成功)返回nRet;nRet = L_CreateBitmapList (&hCorList);如果(nRet ! =成功)返回nRet;nRet = L_InsertBitmapListItem (hCorList (L_UINT) 1, &TmpBitmap);如果(nRet ! =成功)返回nRet;* / / *应用相关性过滤器如此,nRet = L_CorrelationListBitmap (&LeadBitmap hCorList puListIndex, 10日&uNumOfPoints, 1, 2, 90, 0);如果(nRet ! =成功)返回nRet;nRet = L_DestroyBitmapList (hCorList);如果(nRet ! =成功)返回nRet;nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、&LeadBitmap FILE_BMP, 24岁,0,NULL);如果(nRet ! =成功)返回nRet;/ /免费的位图如果(LeadBitmap.Flags.Allocated)L_FreeBitmap (&LeadBitmap);返回成功;}

LEADTOOLS光栅成像C API的帮助