Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 Opencv findContours()返回订单_Python_Opencv_Computer Vision_Ocr - Fatal编程技术网

Python Opencv findContours()返回订单

Python Opencv findContours()返回订单,python,opencv,computer-vision,ocr,Python,Opencv,Computer Vision,Ocr,我一直在修补FindOnTours()及其返回值 假设你有这样一句话: contours, hierarchy = cv2.findContours(dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 显然,这棵RETR_树返回的轮廓首先是最大数量的子对象 现在,我需要以一个顺序返回轮廓,这个顺序取决于它们在图像中的x,y位置 这是我需要的一个图像 我需要轮廓按行排序,然后按列1、2排序;也就是说,第一个轮廓是图像中x和y最小的轮廓,

我一直在修补FindOnTours()及其返回值

假设你有这样一句话:

contours, hierarchy = cv2.findContours(dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
显然,这棵RETR_树返回的轮廓首先是最大数量的子对象

现在,我需要以一个顺序返回轮廓,这个顺序取决于它们在图像中的x,y位置

这是我需要的一个图像

我需要轮廓按行排序,然后按列1、2排序;也就是说,第一个轮廓是图像中x和y最小的轮廓,最后一个轮廓是图像中x和y最大的轮廓(理论上)


有什么想法吗?

那么,把它们分类吧。有什么问题吗顺便说一句,文档并不能保证返回轮廓的顺序
RETR_TREE
仅表示获得所有轮廓,层次结构数据已完全填充。这取决于你是否需要订购它们作为你的用例。不管怎样,在我睡觉之前。。。由于该表单看起来不是完全水平的,所以您可能需要一些启发式方法来将行分组在一起。。。可以根据轮廓的X坐标(左上角或重心等)对轮廓进行聚类,以将其分隔为列。然后使用第一列作为参考,并从质量中心的Y分量位于第一列单元格Y边界内的后续列中查找轮廓。还有一个--将输入图像与a一起发布,这样,如果有人对编写解决方案感兴趣,他们就可以尽可能容易地完成。