Python Opencv 画像認識テーブル:境界線検出


Pythonデータ開発では絵の境界線や絵の中の直線を確認する必要があるため、非常に実用的でコレクションにおすすめです


モジュールをインストールする


次のモジュールが必要です。最初にインストールしてください。

pip install numpy 
pip install opencv-python==4.5.5.64
pip install opencv-python install "opencv-python-headless<4.3"


1. 画像内にテーブルがあるかどうかを確認します



このサンプルコードは、エッジ検出とハフ変換を利用して画像内の直線を抽出し、直線の数に応じてテーブルの有無を判定します。これは単なる例であり、具体的な判断方法やアルゴリズムは状況に応じて調整、最適化する必要があります。

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)

# 统计直线数量,判断是否有表格
if len(lines) > 10:
    print('图片中有表格')
else:
    print('图片中没有表格')


2.写真内の直線を抽出する



サンプルコードでは、Canny エッジ検出と Hough 変換を使用して画像内の直線を抽出し、関数 cv2.line を使用して直線を描画します。より良い結果を得るために、ニーズに応じてエッジ検出とハフ変換のパラメータを調整できます。また、サンプル コードでは直線を描画するだけですが、テーブルの境界線の座標と位置を特定する必要がある場合は、ハフ変換の出力結果を使用してさらなる処理を行うことができます。

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()

実行結果は次のとおりです:
ここに画像の説明を挿入
上記は、このエラー レポートの原因に対する解決策です。解決できるかどうかについて話し合うために、コメント エリアにメッセージを残していただければ幸いです。役に立った場合は、「いいね」と記事の収集をお願いします。サポートしていただきありがとうございます。ブロガーには、遭遇した問題を記録し続ける動機があります。!!!

エラー解決を支援するためにブロガーに連絡するための何千ものフルスタックの VIP Q&A グループ

ブロガーの時間とエネルギーは限られているため、毎日あまりにも多くのプライベート メッセージがあり、すべてのファンが時間内に返信する方法はありません。そのため、最初にVIP ファンに返信すると、次までに1,000 人のフルスタックに入ることができます。期間限定の9.9有料コラム「入門から就職までPythonをマスターする100日」 VIP回答グループを購読すると、優先回答の機会(コードガイダンス、リモートサービス)が得られ、無料の売春80G学習教材が大量に提供されます、コラム購読アドレス:https:/ /blog.csdn.net/yuan2019035055/category_11466020.html

  • 利点:著者は、回答の機会 (コード指導、リモート サービス) を優先し、グループ内の多くの偉人が団結して暖を保つことができます (大手工場の社内昇進の機会)。このコラムは、基礎ゼロの学生のために特別に用意された完全な指導セットです。高度な改善が必要な方も、0から100までどんどん進めて深めていき、フォローには実践的なプロジェクトがあるので面接にも安心して対応できます!

  • カラムの利点:履歴書ガイダンス、人材採用のための社内紹介、物理書籍の毎週配信、80G フルスタック学習ビデオ、300 冊の IT 電子書籍: Python、Java、フロントエンド、ビッグデータ、データベース、アルゴリズム、クローラ、データ分析、機械学習、面接の質問バンクなど

  • : タイムリーな返信を受け取り、偉い人たちとコミュニケーションを取り、学びたい場合は、コラムを購読した後、ブロガーにプライベート メッセージを送って、数千人が参加する VIP Q&A グループに参加してください。ここに画像の説明を挿入
    ここに画像の説明を挿入

無料で情報入手、さらなるファン特典、下記公式アカウントをフォローして入手

ここに画像の説明を挿入

おすすめの本(5冊がパッケージに含まれます)

産業チェーン金融プラットフォームの設計と実装

ここに画像の説明を挿入

本書は6章で構成されており、第1章では産業チェーン金融の発展と改革のプロセスと伝統的企業の核となる価値を紹介し、第3章ではコンテナクラウド技術、マイクロサービス技術、DevOps技術を組み合わせて技術を構築するプロセスを紹介しています。ミドルプラットフォーム、およびオープン銀行と中央銀行の信用報告をドッキングするプロセス、第 4 章では、オープンソースのビッグデータプラットフォームの構築とデータウェアハウスの設計アイデアを紹介、第 5 章では、Python に基づくインテリジェントなリスク管理の開発プロセスを紹介機械学習ライブラリ; 第 6 章では、産業チェーン金融プラットフォームを構築する過程で情報セキュリティの法的リスクを回避する方法を紹介します。

抽選で本を贈るという古いルール (いいねなし、収集、当選は無効): ブロガーをフォローすることを忘れないように注意してください。そうしないと、宝くじに当たったかどうかわかりません。

  • 1.記事に「いいね!」をして集める
  • 2. コメント エリアにメッセージを残してください: 人生は短すぎるので、Python を使用します! (メッセージを残して賞品に応募してください。メッセージは1人最大3件まで)
  • 3. 日曜日 8:00 のクローラー抽選には 5 名が参加します
  • 宝くじを引きたくない場合は、JD の自主購入リンク: https://item.jd.com/13557443.html

おすすめ

転載: blog.csdn.net/yuan2019035055/article/details/130401879