获取二值化图像 - GetThresholdImageFromMultiColorPtr
函数简介
根据指定的颜色范围列表,将图片转换为二值化图像。此函数可以保留指定颜色范围内的像素,其他像素将被设置为黑色。支持多个颜色范围,每个范围可以指定不同的处理类型。
接口名称
GetThresholdImageFromMultiColorPtr
DLL调用
long GetThresholdImageFromMultiColorPtr(long ola, long imgPtr, string colorList)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由DLL版本 CreateCOLAPlugInterFace 接口生成imgPtr
(长整型数): OLAImage对象的地址,源图片指针colorList
(字符串): 颜色范围列表的JSON字符串,格式如下:[ { "StartColor": "3278FA", // 起始颜色(十六进制,不含#) "EndColor": "6496FF", // 结束颜色(十六进制,不含#) "Type": 0 // 处理类型:0-保留范围内颜色,1-保留范围外颜色 } ]
示例:
// 创建OLA对象
long ola = CreateCOLAPlugInterFace();
// 加载源图片
long srcImage = LoadImage(ola, "test.bmp");
// 定义颜色范围列表
string colorList = "[{\"StartColor\":\"3278FA\",\"EndColor\":\"6496FF\",\"Type\":0}]";
// 获取二值化图像
long thresholdImage = GetThresholdImageFromMultiColorPtr(ola, srcImage, colorList);
// 检查操作是否成功
if (thresholdImage != 0) {
// 显示结果
ShowImage(ola, thresholdImage);
// 释放内存
FreeImagePtr(ola, thresholdImage);
} else {
// 处理失败
}
// 释放源图片内存
FreeImagePtr(ola, srcImage);
COM调用
long GetThresholdImageFromMultiColorPtr(long imgPtr, string colorList)
参数定义:
imgPtr
(长整型数): OLAImage对象的地址,源图片指针colorList
(字符串): 颜色范围列表的JSON字符串,格式同DLL调用
示例:
// 加载源图片
long srcImage = ola.LoadImage("test.bmp");
// 定义颜色范围列表
string colorList = "[{\"StartColor\":\"3278FA\",\"EndColor\":\"6496FF\",\"Type\":0}]";
// 获取二值化图像
long thresholdImage = ola.GetThresholdImageFromMultiColorPtr(srcImage, colorList);
// 检查操作是否成功
if (thresholdImage != 0) {
// 显示结果
ola.ShowImage(thresholdImage);
// 释放内存
ola.FreeImagePtr(thresholdImage);
} else {
// 处理失败
}
// 释放源图片内存
ola.FreeImagePtr(srcImage);
返回值
长整型数:
- 0: 失败
- 非0: 成功,返回新的OLAImage对象的地址
注意事项
- 颜色值使用十六进制格式,不包含#前缀
- 每个颜色范围包含起始颜色和结束颜色,形成一个颜色区间
- Type参数决定处理方式:
- 0: 保留颜色范围内的像素,其他像素设为黑色
- 1: 保留颜色范围外的像素,范围内像素设为黑色
- 可以指定多个颜色范围,每个范围独立处理
- 返回的图片需要调用 FreeImagePtr 释放内存
- 原图不会被修改,而是返回一个新的图片对象
- 颜色比较采用RGB颜色空间,不考虑Alpha通道
相关函数
- LoadImage: 加载图片
- FreeImagePtr: 释放图片内存
- ShowImage: 显示图片