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ù)具體情況進(jìn)行調(diào)整和優(yōu)化。
import numpy as np import cv2 # 加載圖片 img = cv2.imread(r'E:\test1.png') # 注意路徑中不能有中文 # 轉(zhuǎn)為灰度圖 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 進(jìn)行邊緣檢測 edges = cv2.Canny(gray, 50, 150, apertureSize=3) # 進(jìn)行霍夫變換,提取直線 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ù)需要調(diào)整邊緣檢測和霍夫變換的參數(shù),以獲得更好的結(jié)果。此外,該示例代碼僅繪制直線,如果需要識別表格邊框線的坐標(biāo)和位置,可以使用霍夫變換的輸出結(jié)果進(jìn)行進(jìn)一步處理。
import numpy as np import cv2 # 加載圖片 img = cv2.imread(r'E:\test1.png') # 注意路徑中不能有中文 # 轉(zhuǎn)為灰度圖 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 進(jìn)行邊緣檢測 edges = cv2.Canny(gray, 50, 150, apertureSize=3) # 進(jìn)行霍夫變換,提取直線 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) # 顯示結(jié)果圖片 cv2.imshow('result', img) cv2.waitKey(0) cv2.destroyAllWindows()
運行結(jié)果如下所示:
到此這篇關(guān)于Python+Opencv實現(xiàn)表格邊框線檢測的文章就介紹到這了,更多相關(guān)Python Opencv邊框線檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python開發(fā)游戲之井字游戲的實戰(zhàn)步驟
最近正在學(xué)習(xí)Python,所以最近做了一個關(guān)于Python的實例,下面這篇文章主要給大家介紹了關(guān)于Python開發(fā)游戲之井字游戲的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Python中利用LSTM模型進(jìn)行時間序列預(yù)測分析的實現(xiàn)
這篇文章主要介紹了Python中利用LSTM模型進(jìn)行時間序列預(yù)測分析的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python 計算兩個列表的相關(guān)系數(shù)的實現(xiàn)
這篇文章主要介紹了python 計算兩個列表的相關(guān)系數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Numpy數(shù)組的廣播機(jī)制的實現(xiàn)
這篇文章主要介紹了Numpy數(shù)組的廣播機(jī)制的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11python實現(xiàn)翻轉(zhuǎn)棋游戲(othello)
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)翻轉(zhuǎn)棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07python基礎(chǔ)學(xué)習(xí)之遞歸函數(shù)知識總結(jié)
在函數(shù)中調(diào)用函數(shù)自身,我們把這樣的函數(shù)叫做遞歸函數(shù), 遞歸函數(shù)就是循環(huán)的調(diào)用,類似于俄羅斯套娃,本文給各位小伙伴詳細(xì)介紹了python遞歸函數(shù),需要的朋友可以參考下2021-05-05