1. <tfoot id='15u4b'></tfoot>
        <i id='15u4b'><tr id='15u4b'><dt id='15u4b'><q id='15u4b'><span id='15u4b'><b id='15u4b'><form id='15u4b'><ins id='15u4b'></ins><ul id='15u4b'></ul><sub id='15u4b'></sub></form><legend id='15u4b'></legend><bdo id='15u4b'><pre id='15u4b'><center id='15u4b'></center></pre></bdo></b><th id='15u4b'></th></span></q></dt></tr></i><div id='15u4b'><tfoot id='15u4b'></tfoot><dl id='15u4b'><fieldset id='15u4b'></fieldset></dl></div>

        <legend id='15u4b'><style id='15u4b'><dir id='15u4b'><q id='15u4b'></q></dir></style></legend>

        <small id='15u4b'></small><noframes id='15u4b'>

        • <bdo id='15u4b'></bdo><ul id='15u4b'></ul>
      2. python opencv将表格图片按照表格框线分割和识别

        时间:2023-12-17

        <i id='odvx9'><tr id='odvx9'><dt id='odvx9'><q id='odvx9'><span id='odvx9'><b id='odvx9'><form id='odvx9'><ins id='odvx9'></ins><ul id='odvx9'></ul><sub id='odvx9'></sub></form><legend id='odvx9'></legend><bdo id='odvx9'><pre id='odvx9'><center id='odvx9'></center></pre></bdo></b><th id='odvx9'></th></span></q></dt></tr></i><div id='odvx9'><tfoot id='odvx9'></tfoot><dl id='odvx9'><fieldset id='odvx9'></fieldset></dl></div>
            <bdo id='odvx9'></bdo><ul id='odvx9'></ul>
            1. <small id='odvx9'></small><noframes id='odvx9'>

                <tbody id='odvx9'></tbody>
              • <tfoot id='odvx9'></tfoot>

                  <legend id='odvx9'><style id='odvx9'><dir id='odvx9'><q id='odvx9'></q></dir></style></legend>
                1. 实现分割和识别表格的方法一般可以分为以下几个步骤:

                  1. 读取图片
                  2. 将图片转换为灰度图像
                  3. 进行二值化处理
                  4. 寻找表格轮廓
                  5. 进行表格切割
                  6. 对每个表格区域进行识别

                  下面将介绍具体的实现方式和示例。

                  1. 读取图片

                  可以使用Python的OpenCV库中的imread()函数读取图片,代码如下:

                  import cv2
                  
                  img = cv2.imread('image.png')
                  

                  2. 将图片转换为灰度图像

                  将彩色图片转换为灰度图像可以减少处理复杂度,可以使用Python的OpenCV库中的cvtColor()函数转换,代码如下:

                  gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
                  

                  3. 进行二值化处理

                  将灰度图像转换为二值图像可以将表格轮廓更好地检测出来,可以使用Python的OpenCV库中的threshold()函数进行处理,代码如下:

                  _, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
                  

                  4. 寻找表格轮廓

                  通过对二值图像进行边缘检测,可以找到表格的轮廓,可以使用Python的OpenCV库中的findContours()函数进行处理,代码如下:

                  contours, _ = cv2.findContours(binary_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
                  

                  5. 进行表格切割

                  找到表格轮廓后,可以对表格进行切割,获取每个表格区域,可以使用Python的OpenCV库中的boundingRect()函数进行处理,代码如下:

                  for contour in contours:
                      x, y, width, height = cv2.boundingRect(contour)
                      table_img = img[y:y+height, x:x+width]
                      #对每个表格区域进行识别...
                  

                  6. 对每个表格区域进行识别

                  找到每个表格区域后,可以进一步对每个表格区域进行识别,可以使用OCR等技术进行处理,下面是一个使用Tesseract OCR进行表格文字识别的示例,代码如下:

                  import pytesseract
                  
                  #指定Tesseract的安装目录
                  pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'
                  
                  def ocr_table(table_img):
                      #将表格区域转换为灰度图像
                      gray_table = cv2.cvtColor(table_img, cv2.COLOR_BGR2GRAY)
                      #进行二值化
                      _, binary_table = cv2.threshold(gray_table, 127, 255, cv2.THRESH_BINARY)
                      #进行图像预处理,增强识别效果
                      processed_table = cv2.GaussianBlur(binary_table, (3,3), 0)
                      #进行OCR识别
                      table_text = pytesseract.image_to_string(processed_table, lang='eng', config='--psm 6')
                      return table_text
                  
                  for contour in contours:
                      x, y, width, height = cv2.boundingRect(contour)
                      table_img = img[y:y+height, x:x+width]
                      table_text = ocr_table(table_img)
                      print(table_text)
                  

                  此时,我们就可以完成对表格图片的按照表格框线分割和识别,一些细节问题还需具体情况具体分析调整。

                  上一篇:Python 限制线程的最大数量的方法(Semaphore) 下一篇:python好玩的项目—色情图片识别代码分享

                  相关文章

                      <small id='9CQr4'></small><noframes id='9CQr4'>

                      • <bdo id='9CQr4'></bdo><ul id='9CQr4'></ul>

                      <i id='9CQr4'><tr id='9CQr4'><dt id='9CQr4'><q id='9CQr4'><span id='9CQr4'><b id='9CQr4'><form id='9CQr4'><ins id='9CQr4'></ins><ul id='9CQr4'></ul><sub id='9CQr4'></sub></form><legend id='9CQr4'></legend><bdo id='9CQr4'><pre id='9CQr4'><center id='9CQr4'></center></pre></bdo></b><th id='9CQr4'></th></span></q></dt></tr></i><div id='9CQr4'><tfoot id='9CQr4'></tfoot><dl id='9CQr4'><fieldset id='9CQr4'></fieldset></dl></div>
                      <tfoot id='9CQr4'></tfoot>

                      <legend id='9CQr4'><style id='9CQr4'><dir id='9CQr4'><q id='9CQr4'></q></dir></style></legend>