大多数图像处理函数作用于内存中的位图,这意味着当您将图像保存到文件中时,这些更改将成为永久性的。一些低级函数作用于您管理的缓冲区(例如,当您在加载数据时处理数据)。
您可以使用许多高级和低级函数更改图像的颜色分辨率(每像素位)。有关这些函数的列表,请参见进行颜色扩展或缩小.
Windows总是使用RGB颜色空间模型,当加载或保存文件时,LEADTOOLS根据需要将图像数据转换为RGB或从RGB转换。然而,LEADTOOLS为其他颜色空间模型提供了函数。你可以使用高级的L_ColorSeparateBitmap而且L_ColorMergeBitmap函数,使用多种颜色空间模型(包括RGB、CMYK、CMY、HSV和HLS)创建和合并分色。您还可以使用低级别L_ConvertColorSpace函数将缓冲区中的原始数据从一种颜色空间模型转换为另一种颜色空间模型,包括RGB, YUV, CMYK, CMY, YIQ, HSV和HLS。
如果源数据是YUV颜色空间而不是BGR/RGB格式,则可以使用L_SetBitmapYUVData函数在BITMAPHANDLE中设置之前,将YUV数据转换为灰度/BGR。使用L_GetBitmapYUVData函数将位图的灰度或BGR数据转换为YUV并将其存储在输出缓冲区中。
的L_AutobinarizeBitmap自动将彩色图像转换为二进制(黑白)图像,具有几个预处理选项。这包括消除位图的背景(同时保留关键特征,如文本),执行自动颜色调整,以及使用用户指定的阈值执行颜色调整。
图像数据可以从有符号变为无符号,反之亦然。签名图像数据可能包含一些负值。将数据从有符号转换为无符号,反之亦然,通过将图像数据/强度值移动一个特定值来完成。在有符号和无符号之间来回转换图像数据的能力通常在医疗或分析应用程序中很有用。
通常在应用图像处理或分析函数之前,要将图像数据从有符号变为无符号,有以下选项:
L_ConvertBitmapSignedToUnsigned根据位图的内部方面移动图像数据。
L_ShiftMinimumToZero向用户提供图像数据按其移位的值。在图像处理之后,可以使用此信息将图像返回到签名数据。
L_ClearNegativePixels将所有负像素设置为0,因此创建无符号图像。
有符号图像转换为无符号图像后,可以对无符号图像进行图像处理或分析功能。(大多数图像处理函数只适用于无符号数据。)当图像处理或分析完成后,将无符号数据转换回有符号数据。
要将图像数据从无符号变为有符号,这通常是在应用图像处理或分析函数后完成的,有以下选项:
L_ConvertBitmapUnsignedToSigned根据位图的内部方面移动图像数据。
L_ShiftZeroToNegative使用户能够指定移动图像数据的量,并指定函数输出的最小值和最大值。
几何变换包括调整大小、修整、旋转、剪切、翻转或反转位图。设计了一些几何变换函数,主要用于文档成像。例如,L_DeskewBitmap(文件和医疗成像工具包)和L_DeskewBitmapExt(文件和医疗成像工具包)让您自动理顺扫描的文档。L_DeskewBitmap具有特殊的标志,可以使银行支票图像变直。有关更多信息,请参阅抗扭斜.
LEADTOOLS还提供L_TransformFile函数执行无损翻转,旋转和反转。但是,目前只支持某些文件格式。这个函数提供了比加载图像,转换它使用更好的结果L_RotateBitmap,L_FlipBitmap或L_ReverseBitmap然后保存。它使用TRANSFORMFILECALLBACK函数用于处理文件。TRANSFORMFILECALLBACK函数反过来使用LEADMARKERCALLBACK函数用于在文件中写入任何更新的标记。有关更多信息,请参阅L_TransformFile,TRANSFORMFILECALLBACK而且LEADMARKERCALLBACK.
的L_DisplaceMapBitmap函数根据位移图图像的值水平和垂直地位移位图像素。
的L_PerspectiveBitmap函数赋予位图一个三维深度,就好像它存在于一个平面上,并被扭曲成不同的形状。的L_ManualPerspectiveDeskew函数纠正视图透视图。
的L_Keystone函数将多边形映射到矩形(反向透视转换),并可用于纠正从便携式设备以一定角度捕获的图像的透视。
的L_UnWarp函数删除圆柱形物体图像中的失真,就像从圆柱体上删除标签并将其压平一样。
使用L_BezierPath函数在调用之前将输出曲线与形状的两个角之间的曲线匹配L_UnWarp.一定要打电话L_FreeBezierPath完成后才能释放与结构相关的所有内存。
的L_AlignImages函数根据输入点的位置对齐两个图像(pRefBitmap和pTempBitmap图像)。这些图像被组合起来,创建了ppOutBitmap图像。
有关该组中的函数列表,请参见光栅图像函数:做几何变换.有关位图变大时内存分配的信息,请参阅调整注意事项.
许多图像处理函数允许您使用各种算法和过滤器更改位图(或位图中的区域)上的像素值。您可以这样做来改善图像的外观,分析图像中的细节,或应用艺术效果。以下主题提供详细信息:
的L_CombineBitmap函数允许您将另一个位图的全部或部分添加到目标位图。您可以传递标志来控制新像素是简单地替换旧像素还是以指定的方式与旧像素组合。还可以在其中一个或两个位图中定义区域,如果这样做,则函数只影响区域的交集。L_CombineBitmap还允许用户组合每个像素不同位的位图,并指定在组合位图时使用哪个颜色平面。有关区域的详细信息,请参见定义和使用位图区域.
源位图和目标位图可以通过将源位图的全部或部分扭曲为目标位图的一部分来组合。若要以这种方式组合图像,请使用L_CombineBitmapWarp.
的L_UnderlayBitmapFunction也组合图像,但它有一个更具体的目的。它结合了两个位图,使其中一个看起来是另一个的底层纹理。
LEADTOOLS提供了几个用于图像绘制的函数。的L_PicturizeBitmap函数将图像替换为通过组合特定目录中存在的图像而创建的新图像。L_PicturizeBitmapList用组合位图列表中的图像所创建的新图像替换图像。的L_PicturizeBitmapSingle函数使用单个图像的不同版本来描绘图像。
两个位图也可以通过将图像与不透明度值结合来混合。的L_AlphaBlendBitmap函数结合两个具有固定不透明度值的位图来创建新的混合图像。的L_FeatherAlphaBlendBitmap函数通过使用依赖于渐隐蒙版并指定渐隐蒙版区域的可变不透明度来组合两个位图。渐隐掩码位图可以使用L_CreateFadedMask函数。
属性可以向位图添加边框和框架L_AddBorder而且L_AddFrame功能。
的L_BumpMapBitmap函数允许您将位图与凹凸图像结合起来创建三维纹理模式。
的L_CanvasBitmap函数将一个图像作为另一个图像的覆盖层应用。
其他一些函数可以让你获取和放置像素数据。例如,您可以用颜色填充位图,还可以获取和放置单个像素值。有关函数列表,请参阅获取和设置像素值.
将位图视为设备上下文提供了许多可能性。的L_CreateLeadDC函数让您获得设备上下文。然后,您可以使用Windows GDI函数在位图上绘制线条、文本或图像。您还可以使用LEADTOOLS特效功能来添加三维形状或文本,或以有趣的方式组合图像。具体操作请参见执行特殊效果.
L_TextureAlphaBlendBitmap结合来自pBitmapMask和pBitmapUnderlay的图像数据和底层效果。结果被用作渐隐蒙版,将用于结合pBitmapSrc和pBitmapDst与可变透明度。结果再次结合pBitmapDst使用恒定的不透明度(使用nOpacity)。的L_BricksTextureBitmap函数创建砖块纹理,使图像看起来像在砖墙上画的。
的L_DigitalSubtractBitmap函数不合并图像,而是从掩码(源)位图中减去活动(目标)位图,以显示两个位图之间的差异。
方法可以比较两个位图或两个位图的部分L_CorrelationBitmap函数。该函数将一个位图的全部或部分与另一个位图中相同维度的所有区域进行比较,并根据相关性度量找到匹配的区域。的L_CorrelationListBitmap函数将hCorList中的图像与pBitmap中所有相同维度的区域进行比较,并根据相关性度量找到匹配的部分。
的L_SliceBitmap函数的目的是从射线扫描的胶片中提取单个切片。
的L_BlankPageDetectorBitmap函数确定扫描图像是否为空白页(空),也给出结果的准确率百分比。此功能有助于减少扫描图像的磁盘存储。
的L_InvertedPageBitmap函数检测图像(页面)是否颠倒(白色文本和黑色背景)。如果它是反向的,它将再次反向,因此文本是黑色的,背景是白色的。使用此函数可以增强OCR和清理功能的性能。
的L_LambdaConnectedness函数使用一种称为Lambda Connectedness的特殊区域增长算法执行图像分割。
的L_LevelsetBitmapRgn函数执行半自动分割(使用Levelset算法),以找到封装对象的最佳拟合轮廓。
的L_OtsuThreshold函数使用Otsu聚类对灰度图像进行图像分割和颜色减少。大津阈值化通常用作图像二值化的一种方法。
使用L_MICRDetection功能,自动侦测文件图像中的磁墨字符识别区。
使用L_MRZDetection功能,自动侦测文件图像中的机器可读护照区。
的L_BlurDetection函数确定图像是否模糊。的L_GlareDetection功能自动检测图像中的眩光区域。
的L_SignalToNoiseRatio函数计算信噪比(SNR)为真实值的10*log10。这个值表示图像中相邻像素的同质性。
的L_KMeansBitmapSegmentation函数是一种分析数据的算法。每个观测值都被放置在均值最接近的聚类中。
的L_GWireGetMinPath函数使用G-Wire算法检测图像中的对象。
的L_AutoZoneBitmap函数自动检测图像中的不同区域(文本,图形和表格),并返回分配内存中每个区域的位置(矩形)和数据(文本行和表格的单元格)。它可以用于OCR,或任何需要在混合光栅内容(MRC)图像中自动分离图像、表格和文本的应用程序。
如果用户定义了AUTOZONECALLBACK函数,并将此函数的指针传递给L_AutoZoneBitmap,回调函数将接收检测到的每个区域。这允许用户根据需要处理每张图像。
当不再需要已分配的包含检测到的区域的内存时,应该调用L_FreeZoneData函数。
通常,Magic Wand操作创建一个Windows区域或LEAD区域(L_RGN)。虽然快速魔杖操作以相同的方式和相同的条件下工作,但它会创建一个OBJECTINFO结构,包含两个元素:矩形和二维数组。
矩形对应于区域的包围框。二维数组对应于属于该区域的像素,方法是将包含的元素引用为1,而将不包含的元素引用为0。
二维数组元素的数量、方向和顺序与边界矩形内的像素相对应。因此,可以知道该区域的确切形状和位置。
要开始使用“快速魔棒”操作,必须首先初始化“快速魔棒”句柄。方法来实现这一点L_StartFastMagicWandEngine函数。句柄初始化后,通过调用方法执行快速魔棒操作L_FastMagicWand函数。当需要在一张图像上选择多个区域时,使用这个函数,特别是大图像,因为它执行得更快。当OBJECTINFO结构。L_FastMagicWand不再需要时,通过调用L_DeleteObjectInfo函数。
的L_ObjectCounter统计二值图像中的对象。它在白色背景下计算黑色物体。如果背景是黑色的,物体是白色的,使用L_InvertBitmap然后使用L_ObjectCounter.
当快速魔棒手柄不再需要时,通过调用释放手柄L_EndFastMagicWandEngine.此时,此句柄无效。
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。