L_AutoColorLevelBitmap

# include“l_bitmap.h”

L_LTIMGCLR_APIL_INTL_AutoColorLevelBitmap(pBitmap, pLvlClr, uBlackClip, uWhiteClip, uFlags)

将几种类型的自动颜色调平应用于图像。此函数也可用于对图像进行预处理改进条形码识别结果。

参数

pBITMAPHANDLEpBitmap

位图句柄的指针。

pLVLCLRpLvlClr

指向LVLCLR结构,该结构指定函数使用的颜色调平信息。如果未设置AUTO_NOPROCESSuFlags,如果您对使用这些值不感兴趣,可以传递NULL。如果在uFlags中设置了AUTO_NOPROCESS,那么该参数不能为NULL。

L_UINTuBlackClip

无符号整数,表示要从位图中裁剪的黑色像素的百分比,以百分之一为单位。有效值为0 ~ 10000(代表100%)。使用0.3%至0.9%时效果最好。默认值是DEFAULT_BLACK_CLIP,它表示截取黑色像素的0.5%。

L_UINTuWhiteClip

无符号整数,表示要从位图中剪辑的像素的百分比,以百分之一为单位。有效值为0 ~ 10000(代表100%)。默认值是DEFAULT_WHITE_CLIP,它表示截取白色像素的0.5%。

L_UINTuFlags

指示要执行的调平类型的标志。可能取值为:

价值 意义
AUTO_LEVEL [0x0001]在单独的R、G和B通道上执行调平,将每个R、G和B通道视为单独的实体。它介绍了图像上的颜色投射。
AUTO_CONTRAST [0x0002]对MASTER执行调平操作通道(像素的灰度值)。不引入任何颜色。
AUTO_INTENSITY [0x0003]在RGB通道(R、G和B通道的和)上执行调平。不引入任何颜色。
AUTO_NOPROCESS [0x0004]不处理位图只是更新pLvlClr与颜色调平信息使用。所使用的颜色等级信息取决于其他哪个标志是用AUTO_NOPROCESS设置的。AUTO_NOPROCESS只能设置一个其他标志。

返回

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

评论

这个功能使暗值更暗,亮值更浅,自动增强阴影和增亮图像。它还最大化了图像的色调范围。它使用图像的直方图和基于颜色分布的算法来增强对比度和强度。

在调用L_AutoColorLevelBitmap之前,初始化LVLCLR结构。结构的其他字段将更新为该函数用于适当通道的uMinInput, uMaxInput, uMinOutput, uMaxOutput和uGamma值。

如果你设置AUTO_NOPROCESS标志uFlags,pLvlClr参数将被L_AutoColorLevelBitmap函数使用的颜色水平信息更新。对象将更新的pLvlClr结构传递给L_ColorLevelBitmap函数,你将得到相同的结果,如果你调用L_AutoColorLevelBitmap函数本身的水平标志。

如果你在uFlags中设置AUTO_NOPROCESS并将NULL传递给pLvlClr,函数将返回一个错误代码。

如果你只将AUTO_NOPROCESS传递给uFlags,那么函数将返回一个错误码。

如果图像是灰度图像,那么AUTO_LEVEL, AUTO_CONTRAST和AUTO_INTENSITY会给出相同的结果。还有成员变量master,红色,绿色和蓝色的结构pLvlClr会有相同的值。

如果位图有一个区域,该效果将只应用于该区域。

此功能支持12位和16位灰度以及48位和64位彩色图像。中支持12位和16位灰度以及48位和64位彩色图像文件和医疗成像工具包。

此函数不支持签名数据映像。如果将签名数据图像传递给该函数,则返回错误代码ERROR_SIGNED_DATA_NOT_SUPPORTED。

此函数不支持32位灰度图像。如果将32位灰度图像传递给该函数,则返回错误代码ERROR_GRAY32_UNSUPPORTED。

要更新状态栏或在执行此函数期间检测用户中断,请参见L_SetStatusCallback

例如,单击在这里

计算主通道值

为了加快LEADTOOLS中广泛使用的图像处理滤波器的速度,彩色图像的灰度值(主通道)采用以下公式计算:

#定义CalcGrayValue (r, g, b) ((L_UCHAR) (((L_UCHAR) (((2 * (L_UINT) (r)) + (5 * (L_UINT) (g)) + (L_UINT) (b) + 4) / 8))))#定义CalcGrayValue16 (r, g, b) ((L_UINT16) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8))#定义CalcGrayValue32 (r, g, b) ((L_UINT32) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8))

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

这个例子加载一个位图并应用自动图像水平。

L_INT AutoColorLevelBitmapExample (L_VOID)L_INT nRet;BITMAPHANDLE LeadBitmap;/*存放加载图像的位图句柄。* /LVLCLR信用证;结构来保存级别值,仅用于显示*/L_TCHAR缓冲[100];/*加载位图,保持文件的每像素位nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“ImageProcessingDemo \ \ Image1.jpg”&LeadBitmap)),运算符(bitmaphandle), 0, order_bgr, null, null);如果(nRet ! =成功)返回nRet;/*对位图应用“自动调平信用证。uStructSize =运算符(LVLCLR);nRet = L_AutoColorLevelBitmap (&LeadBitmap, &lc, DEFAULT_BLACK_CLIP, DEFAULT_WHITE_CLIP, AUTO_LEVEL);如果(nRet ! =成功)返回nRet;wsprintf (buffer, TEXT("使用自动级别的蓝色通道的最小和最大输入值是%d和%d"), lc.blue。nMinInput lc.blue.nMaxInput);如果(LeadBitmap.Flags.Allocated)L_FreeBitmap (&LeadBitmap);返回成功;

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