10 楼
发表于 2025-6-15 20:46:56
|
只看该作者
广东省深圳市
这些全身AI写的,能直接跑的,没报错,正常
文字框选检测 整数型 二值化图片 字节集 返回文字框 整数型
变量名 类 型 静态 数组 备 注 局_位图 位图 W 整数型 H 整数型 访问标记 逻辑型 0 连通域 整数型 0 连通域数量 整数型 合并后框数量 整数型 x 整数型 y 整数型
局_位图.
载入数据 ( 二值化图片
) W = 局_位图.
取宽度 ( ) H = 局_位图.
取高度 ( ) 重定义数组 ( 访问标记, 假, W, H
) 连通域数量 =
连通域分析 ( 局_位图, 访问标记, 连通域
) 合并后框数量 =
文字区域过滤合并 ( 连通域, 连通域数量, 返回文字框
) 返回 ( 合并后框数量
) 连通域分析 整数型 位图对象 位图 访问标记 逻辑型 连通域结果 整数型
变量名 类 型 静态 数组 备 注 W 整数型 H 整数型 x 整数型 y 整数型 区域数量 整数型 当前区域 整数型 4
W = 位图对象.
取宽度 ( ) H = 位图对象.
取高度 ( ) 区域数量 = 0
重定义数组 ( 连通域结果, 假, 500, 4
) 变量循环首 ( 0, H - 1, 1, y
) 变量循环首 ( 0, W - 1, 1, x
) 如果真 ( 访问标记
[ x + 1
] [ y + 1
] =
假 且 是文字像素 ( 位图对象, x, y
) )
区域数量 = 区域数量 + 1
洪水填充 ( 位图对象, 访问标记, x, y, 当前区域
) 连通域结果
[ 区域数量
] [ 1
] = 当前区域
[ 1
] 连通域结果
[ 区域数量
] [ 2
] = 当前区域
[ 2
] 连通域结果
[ 区域数量
] [ 3
] = 当前区域
[ 3
] 连通域结果
[ 区域数量
] [ 4
] = 当前区域
[ 4
] 变量循环尾 ( ) 变量循环尾 ( ) 返回 ( 区域数量
) 洪水填充 位图对象 位图 访问标记 逻辑型 起始X 整数型 起始Y 整数型 区域信息 整数型
变量名 类 型 静态 数组 备 注 栈X 整数型 0 栈Y 整数型 0 栈顶 整数型 当前X 整数型 当前Y 整数型 最小X 整数型 最大X 整数型 最小Y 整数型 最大Y 整数型 W 整数型 H 整数型 i 整数型 j 整数型
W = 位图对象.
取宽度 ( ) H = 位图对象.
取高度 ( ) 重定义数组 ( 栈X, 假, 10000
) 重定义数组 ( 栈Y, 假, 10000
) 栈顶 = 0
最小X = 起始X
最大X = 起始X
最小Y = 起始Y
最大Y = 起始Y
栈顶 = 栈顶 + 1
栈X
[ 栈顶
] = 起始X
栈Y
[ 栈顶
] = 起始Y
判断循环首 ( 栈顶 > 0
) 当前X = 栈X
[ 栈顶
] 当前Y = 栈Y
[ 栈顶
] 栈顶 = 栈顶 - 1
如果真 ( 当前X < 0
或 当前X ≥ W
或 当前Y < 0
或 当前Y ≥ H
) 到循环尾 ( ) 如果真 ( 访问标记
[ 当前X + 1
] [ 当前Y + 1
] =
真 或 是文字像素 ( 位图对象, 当前X, 当前Y
) =
假 ) 到循环尾 ( ) 访问标记
[ 当前X + 1
] [ 当前Y + 1
] = 真
如果真 ( 当前X < 最小X
) 最小X = 当前X
如果真 ( 当前X > 最大X
) 最大X = 当前X
如果真 ( 当前Y < 最小Y
) 最小Y = 当前Y
如果真 ( 当前Y > 最大Y
) 最大Y = 当前Y
变量循环首 ( -1, 1, 1, i
) 变量循环首 ( -1, 1, 1, j
) 如果真 ( i = 0
且 j = 0
) 到循环尾 ( ) 栈顶 = 栈顶 + 1 栈X
[ 栈顶
] = 当前X + i
栈Y
[ 栈顶
] = 当前Y + j
变量循环尾 ( ) 变量循环尾 ( ) 判断循环尾 ( ) 区域信息
[ 1
] = 最小X
区域信息
[ 2
] = 最小Y
区域信息
[ 3
] = 最大X - 最小X + 1
区域信息
[ 4
] = 最大Y - 最小Y + 1
颜色值 = 位图对象.
取某点颜色 ( x, y
) 返回 ( 颜色值 = 0
) 文字区域过滤合并 整数型 连通域 整数型 连通域数量 整数型 最终文字框 整数型
变量名 类 型 静态 数组 备 注 有效区域 整数型 1,4 有效数量 整数型 i 整数型 面积 整数型 长宽比 双精度小数型 合并结果数量 整数型
有效数量 = 0
重定义数组 ( 有效区域, 假, 连通域数量, 4
) 变量循环首 ( 1, 连通域数量, 1, i
) 面积 = 连通域
[ i
] [ 3
] × 连通域
[ i
] [ 4
] 长宽比 = 连通域
[ i
] [ 3
] ÷ 连通域
[ i
] [ 4
] 如果真 ( 面积 > 100
且 长宽比 > 0.1
且 长宽比 < 10
且 连通域
[ i
] [ 3
] > 10
且 连通域
[ i
] [ 4
] > 5
) 有效数量 = 有效数量 + 1
有效区域
[ 有效数量
] [ 1
] = 连通域
[ i
] [ 1
] 有效区域
[ 有效数量
] [ 2
] = 连通域
[ i
] [ 2
] 有效区域
[ 有效数量
] [ 3
] = 连通域
[ i
] [ 3
] 有效区域
[ 有效数量
] [ 4
] = 连通域
[ i
] [ 4
] 变量循环尾 ( ) 合并结果数量 =
区域合并处理 ( 有效区域, 有效数量, 最终文字框
) 返回 ( 合并结果数量
) 区域合并处理 整数型 区域列表 整数型 区域数量 整数型 合并结果 整数型
变量名 类 型 静态 数组 备 注 已合并 逻辑型 0 合并数量 整数型 i 整数型 j 整数型 距离 双精度小数型 中心X1 整数型 中心Y1 整数型 中心X2 整数型 中心Y2 整数型 合并组 整数型 1,4 组内数量 整数型 最小X 整数型 最小Y 整数型 最大X 整数型 最大Y 整数型 k 整数型
重定义数组 ( 已合并, 假, 区域数量
) 重定义数组 ( 合并结果, 假, 区域数量, 4
) 重定义数组 ( 合并组, 假, 区域数量, 4
) 合并数量 = 0
变量循环首 ( 1, 区域数量, 1, i
) 如果真 ( 已合并
[ i
] =
真 ) 到循环尾 ( ) 组内数量 = 1
合并组
[ 1
] [ 1
] = 区域列表
[ i
] [ 1
] 合并组
[ 1
] [ 2
] = 区域列表
[ i
] [ 2
] 合并组
[ 1
] [ 3
] = 区域列表
[ i
] [ 3
] 合并组
[ 1
] [ 4
] = 区域列表
[ i
] [ 4
] 已合并
[ i
] = 真
变量循环首 ( i + 1, 区域数量, 1, j
) 如果真 ( 已合并
[ j
] =
真 ) 到循环尾 ( ) 中心X1 = 区域列表
[ i
] [ 1
] + 区域列表
[ i
] [ 3
] ÷ 2
中心Y1 = 区域列表
[ i
] [ 2
] + 区域列表
[ i
] [ 4
] ÷ 2
中心X2 = 区域列表
[ j
] [ 1
] + 区域列表
[ j
] [ 3
] ÷ 2
中心Y2 = 区域列表
[ j
] [ 2
] + 区域列表
[ j
] [ 4
] ÷ 2
距离 =
求平方根 ( 求次方 ( 中心X1 - 中心X2, 2
) +
求次方 ( 中心Y1 - 中心Y2, 2
) )
如果真 ( 距离 < 50
) 组内数量 = 组内数量 + 1
合并组
[ 组内数量
] [ 1
] = 区域列表
[ j
] [ 1
] 合并组
[ 组内数量
] [ 2
] = 区域列表
[ j
] [ 2
] 合并组
[ 组内数量
] [ 3
] = 区域列表
[ j
] [ 3
] 合并组
[ 组内数量
] [ 4
] = 区域列表
[ j
] [ 4
] 已合并
[ j
] = 真
变量循环尾 ( ) 最小X = 合并组
[ 1
] [ 1
] 最小Y = 合并组
[ 1
] [ 2
] 最大X = 合并组
[ 1
] [ 1
] + 合并组
[ 1
] [ 3
] 最大Y = 合并组
[ 1
] [ 2
] + 合并组
[ 1
] [ 4
] 变量循环首 ( 2, 组内数量, 1, k
) 如果真 ( 合并组
[ k
] [ 1
] < 最小X
) 最小X = 合并组
[ k
] [ 1
] 如果真 ( 合并组
[ k
] [ 2
] < 最小Y
) 最小Y = 合并组
[ k
] [ 2
] 如果真 ( 合并组
[ k
] [ 1
] + 合并组
[ k
] [ 3
] > 最大X
) 最大X = 合并组
[ k
] [ 1
] + 合并组
[ k
] [ 3
] 如果真 ( 合并组
[ k
] [ 2
] + 合并组
[ k
] [ 4
] > 最大Y
) 最大Y = 合并组
[ k
] [ 2
] + 合并组
[ k
] [ 4
] 变量循环尾 ( ) 合并数量 = 合并数量 + 1
合并结果
[ 合并数量
] [ 1
] = 最小X
合并结果
[ 合并数量
] [ 2
] = 最小Y
合并结果
[ 合并数量
] [ 3
] = 最大X - 最小X
合并结果
[ 合并数量
] [ 4
] = 最大Y - 最小Y
变量循环尾 ( ) 返回 ( 合并数量
) 绘制文字框 字节集 原图 字节集 文字框列表 整数型 框数量 整数型
局_位图.
载入数据 ( 原图
) 变量循环首 ( 1, 框数量, 1, i
) 绘制矩形框 ( 局_位图, 文字框列表
[ i
] [ 1
] , 文字框列表
[ i
] [ 2
] , 文字框列表
[ i
] [ 3
] , 文字框列表
[ i
] [ 4
] ,
#绿色 ) 变量循环尾 ( ) 返回 ( 局_位图.
取位图数据 ( ) )
绘制矩形框 位图对象 位图 x 整数型 y 整数型 w 整数型 h 整数型 颜色 整数型
变量循环首 ( x, x + w - 1, 1, i
) 位图对象.
置某点颜色 ( i, y, 颜色
) 位图对象.
置某点颜色 ( i, y + h - 1, 颜色
) 变量循环尾 ( ) 变量循环首 ( y, y + h - 1, 1, i
) 位图对象.
置某点颜色 ( x, i, 颜色
) 位图对象.
置某点颜色 ( x + w - 1, i, 颜色
) 变量循环尾 ( ) 提取文字框图片 字节集 原始图片 字节集 文字框坐标 整数型
变量名 类 型 静态 数组 备 注 源位图 位图 目标位图 位图 框X 整数型 框Y 整数型 框宽 整数型 框高 整数型 x 整数型 y 整数型
源位图.
载入数据 ( 原始图片
) 框X = 文字框坐标
[ 1
] 框Y = 文字框坐标
[ 2
] 框宽 = 文字框坐标
[ 3
] 框高 = 文字框坐标
[ 4
] 如果真 ( 框X < 0
或 框Y < 0
或 框X + 框宽 > 源位图.
取宽度 ( ) 或 框Y + 框高 > 源位图.
取高度 ( ) )
返回 ( { } ) 目标位图.
创建 ( 框宽, 框高, 24,
) 变量循环首 ( 0, 框宽 - 1, 1, x
) 变量循环首 ( 0, 框高 - 1, 1, y
) 目标位图.
置某点颜色 ( x, y, 源位图.
取某点颜色 ( 框X + x, 框Y + y
) )