Python+Opencv實現(xiàn)表格邊框線檢測
安裝模塊
下面需要用模塊,先安裝一下:
pip install numpy pip install opencv-python==4.5.5.64 pip install opencv-python install "opencv-python-headless<4.3"
1. 判斷圖片中是否有表格
該示例代碼使用邊緣檢測和霍夫變換提取圖片中的直線,然后根據(jù)直線數(shù)量來判斷是否有表格。這只是一個簡單的示例,具體的判斷方法和算法需要根據(jù)具體情況進行調整和優(yōu)化。
import numpy as np import cv2 # 加載圖片 img = cv2.imread(r'E:\test1.png') # 注意路徑中不能有中文 # 轉為灰度圖 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 進行邊緣檢測 edges = cv2.Canny(gray, 50, 150, apertureSize=3) # 進行霍夫變換,提取直線 lines = cv2.HoughLinesP(edges, 1, np.pi/180, threshold=100, minLineLength=100, maxLineGap=10) # 統(tǒng)計直線數(shù)量,判斷是否有表格 if len(lines) > 10: print('圖片中有表格') else: print('圖片中沒有表格')
2. 提取圖片中的直線
該示例代碼使用Canny邊緣檢測和霍夫變換提取圖片中的直線,并使用cv2.line函數(shù)繪制直線。您可以根據(jù)需要調整邊緣檢測和霍夫變換的參數(shù),以獲得更好的結果。此外,該示例代碼僅繪制直線,如果需要識別表格邊框線的坐標和位置,可以使用霍夫變換的輸出結果進行進一步處理。
import numpy as np import cv2 # 加載圖片 img = cv2.imread(r'E:\test1.png') # 注意路徑中不能有中文 # 轉為灰度圖 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 進行邊緣檢測 edges = cv2.Canny(gray, 50, 150, apertureSize=3) # 進行霍夫變換,提取直線 lines = cv2.HoughLinesP(edges, 1, np.pi/180, threshold=100, minLineLength=100, maxLineGap=10) # 繪制直線 for line in lines: x1, y1, x2, y2 = line[0] cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2) # 顯示結果圖片 cv2.imshow('result', img) cv2.waitKey(0) cv2.destroyAllWindows()
運行結果如下所示:
到此這篇關于Python+Opencv實現(xiàn)表格邊框線檢測的文章就介紹到這了,更多相關Python Opencv邊框線檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python開發(fā)游戲之井字游戲的實戰(zhàn)步驟
最近正在學習Python,所以最近做了一個關于Python的實例,下面這篇文章主要給大家介紹了關于Python開發(fā)游戲之井字游戲的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02Python中利用LSTM模型進行時間序列預測分析的實現(xiàn)
這篇文章主要介紹了Python中利用LSTM模型進行時間序列預測分析的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07python 計算兩個列表的相關系數(shù)的實現(xiàn)
這篇文章主要介紹了python 計算兩個列表的相關系數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08