Python+Opencv實(shí)現(xiàn)表格邊框線檢測(cè)
安裝模塊
下面需要用模塊,先安裝一下:
pip install numpy pip install opencv-python==4.5.5.64 pip install opencv-python install "opencv-python-headless<4.3"
1. 判斷圖片中是否有表格
該示例代碼使用邊緣檢測(cè)和霍夫變換提取圖片中的直線,然后根據(jù)直線數(shù)量來(lái)判斷是否有表格。這只是一個(gè)簡(jiǎn)單的示例,具體的判斷方法和算法需要根據(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)行邊緣檢測(cè) 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)計(jì)直線數(shù)量,判斷是否有表格 if len(lines) > 10: print('圖片中有表格') else: print('圖片中沒(méi)有表格')
2. 提取圖片中的直線
該示例代碼使用Canny邊緣檢測(cè)和霍夫變換提取圖片中的直線,并使用cv2.line函數(shù)繪制直線。您可以根據(jù)需要調(diào)整邊緣檢測(cè)和霍夫變換的參數(shù),以獲得更好的結(jié)果。此外,該示例代碼僅繪制直線,如果需要識(shí)別表格邊框線的坐標(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)行邊緣檢測(cè) 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()
運(yùn)行結(jié)果如下所示:
到此這篇關(guān)于Python+Opencv實(shí)現(xiàn)表格邊框線檢測(cè)的文章就介紹到這了,更多相關(guān)Python Opencv邊框線檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python開(kāi)發(fā)游戲之井字游戲的實(shí)戰(zhàn)步驟
最近正在學(xué)習(xí)Python,所以最近做了一個(gè)關(guān)于Python的實(shí)例,下面這篇文章主要給大家介紹了關(guān)于Python開(kāi)發(fā)游戲之井字游戲的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Python中利用LSTM模型進(jìn)行時(shí)間序列預(yù)測(cè)分析的實(shí)現(xiàn)
這篇文章主要介紹了Python中利用LSTM模型進(jìn)行時(shí)間序列預(yù)測(cè)分析的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python 計(jì)算兩個(gè)列表的相關(guān)系數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了python 計(jì)算兩個(gè)列表的相關(guān)系數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Numpy數(shù)組的廣播機(jī)制的實(shí)現(xiàn)
這篇文章主要介紹了Numpy數(shù)組的廣播機(jī)制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python?常見(jiàn)的配置文件寫(xiě)法梳理匯總
這篇文章主要介紹了Python?常見(jiàn)的配置文件寫(xiě)法梳理匯總,文章圍繞主題展開(kāi)主題相關(guān)梳理總結(jié),需要的朋友可以參考一下2022-07-07python實(shí)現(xiàn)翻轉(zhuǎn)棋游戲(othello)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)翻轉(zhuǎn)棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07python基礎(chǔ)學(xué)習(xí)之遞歸函數(shù)知識(shí)總結(jié)
在函數(shù)中調(diào)用函數(shù)自身,我們把這樣的函數(shù)叫做遞歸函數(shù), 遞歸函數(shù)就是循環(huán)的調(diào)用,類似于俄羅斯套娃,本文給各位小伙伴詳細(xì)介紹了python遞歸函數(shù),需要的朋友可以參考下2021-05-05Python簡(jiǎn)單計(jì)算數(shù)組元素平均值的方法示例
這篇文章主要介紹了Python簡(jiǎn)單計(jì)算數(shù)組元素平均值的方法,涉及Python簡(jiǎn)單數(shù)組遍歷與數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-12-12Python Matplotlib繪制條形圖的全過(guò)程
Python畫(huà)圖主要用到matplotlib這個(gè)庫(kù),具體來(lái)說(shuō)是pylab和pyplot這兩個(gè)子庫(kù),這兩個(gè)庫(kù)可以滿足基本的畫(huà)圖需求,下面這篇文章主要給大家介紹了關(guān)于Python Matplotlib繪制條形圖的相關(guān)資料,需要的朋友可以參考下2021-10-10