Closed KevinNuNu closed 1 year ago
您好,请问,您遇到过在线条全部检测并准确的情况下,table_ceil.py中8连通区域后的三行代码处理后导致缺线缺格的情况吗,我翻看代码,没找到原因
您好,请问,您遇到过在线条全部检测并准确的情况下,table_ceil.py中8连通区域后的三行代码处理后导致缺线缺格的情况吗,我翻看代码,没找到原因
我也遇到了相同的问题 请问你是怎么解决的呢
@zhengquanhe 找到是找到了,源码里的方法有点碎,得翻好一阵子。不是一个原因导致的,需要debug确认
https://github.com/chineseocr/table-detect/blob/92488f30ffaf486d29791aab63802beeb1eaca32/utils.py#L180
稳定触发报错的例子: 1.ColsLines[i] = (189,5,189,92);ColsLines[j] = (202, 92, 202, 396),即(x2,y2) = (189, 92),(x3,y3) = (202, 92),r = sqrt((x2, y2), (x3, y3)) < alph 成立 2.会执行newColsLines.append([x2, y2, x3, y3]),但此处显然[189,92,202,92]是一条横线 3.newColsLines列表里混入横线后,运行到line_to_line函数时,只要与[189,92,202,92]计算的另一条横线y值相同,就会导致fit_line时直线系数A为0 https://github.com/chineseocr/table-detect/blob/92488f30ffaf486d29791aab63802beeb1eaca32/utils.py#L228 4.最后导致分母"A1B2-A2B1"为0报错 https://github.com/chineseocr/table-detect/blob/92488f30ffaf486d29791aab63802beeb1eaca32/utils.py#L255 5.同样adjust_lines函数第152,156,176行这三条分支都会触发上述错误
问题导致原因: RowsLines循环时,两条row_line特殊情况会产生一条垂直的col_line,需要增加判断条件加到newColsLines而非newRowsLines,ColsLines循环同理。
解决方案:增加调整后新增线段是否水平垂直