# include“l_bitmap.h”
L_LTIMGCLR_APIL_INTL_AutoColorLevelBitmap(pBitmap, pLvlClr, uBlackClip, uWhiteClip, uFlags)
将几种类型的自动颜色调平应用于图像。此函数也可用于对图像进行预处理改进条形码识别结果。
位图句柄的指针。
指向LVLCLR结构,该结构指定函数使用的颜色调平信息。如果未设置AUTO_NOPROCESSuFlags
,如果您对使用这些值不感兴趣,可以传递NULL。如果在uFlags中设置了AUTO_NOPROCESS,那么该参数不能为NULL。
无符号整数,表示要从位图中裁剪的黑色像素的百分比,以百分之一为单位。有效值为0 ~ 10000(代表100%)。使用0.3%至0.9%时效果最好。默认值是DEFAULT_BLACK_CLIP,它表示截取黑色像素的0.5%。
无符号整数,表示要从位图中剪辑的像素的百分比,以百分之一为单位。有效值为0 ~ 10000(代表100%)。默认值是DEFAULT_WHITE_CLIP,它表示截取白色像素的0.5%。
指示要执行的调平类型的标志。可能取值为:
价值 | 意义 |
---|---|
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);
返回成功;
}
帮助收藏
光栅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点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。