Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在图像中合并水平对齐的多边形_Python_Numpy_Opencv_Image Processing_Ocr - Fatal编程技术网

Python 在图像中合并水平对齐的多边形

Python 在图像中合并水平对齐的多边形,python,numpy,opencv,image-processing,ocr,Python,Numpy,Opencv,Image Processing,Ocr,我有一个图像,我正在使用谷歌视觉API执行OCR,我得到的结果包含每个单词的多边形顶点。绘制多边形后,图像如下所示。。 现在我想合并水平对齐的框。例如:(销售项目),(S000828749 MB短片12.00),…,(小计146.00) 我尝试过的事情: 我从垂直边缘的中点画了一条线,并将其延伸到图像边缘,计算该线接触的多边形数量,并用与该线相同的颜色对多边形进行颜色编码。我得到了一张像这样的图片。 不确定如何继续并在一条线上获取组 通过以下方法解决了此问题。 1.每个框都有一个标签列表,标签

我有一个图像,我正在使用谷歌视觉API执行OCR,我得到的结果包含每个单词的多边形顶点。绘制多边形后,图像如下所示。。 现在我想合并水平对齐的框。例如:(销售项目),(S000828749 MB短片12.00),…,(小计146.00)

我尝试过的事情: 我从垂直边缘的中点画了一条线,并将其延伸到图像边缘,计算该线接触的多边形数量,并用与该线相同的颜色对多边形进行颜色编码。我得到了一张像这样的图片。


不确定如何继续并在一条线上获取组

通过以下方法解决了此问题。
1.每个框都有一个标签列表,标签初始化为[]。
2.在x坐标上对框进行排序。
3.将tad初始化为0。标记只是单个标识符,我们的目标是为同一行上的框分配相同的标记。
3.迭代每个框。
4.如果标记列表为空,则增加标记值并将其附加到该框的标记列表中。
5.对所有外框进行迭代,并为外框轴线接触的每个框指定相同的标记。
6.如果标记列表不为空,则取标记列表中出现的最大标记。

这是N^2算法,其中N是框的数量。

将所有矩形放在一个列表中。首先按左上角的坐标对列表进行排序,然后按左上角的坐标升序对列表进行排序。这是不正确的。按
y
坐标排序列表将更改按
x
排序的列表的顺序,因此按
x
排序将没有任何用处,我的最终列表将按
y
排序。您能提供边界框列表吗?从图像中手动测量坐标有点无聊。比如[(“销售”,428,34,120,40),…]谢谢@Harry。。但我已经添加了解决的答案……好的。感谢分享答案:-)