群馬県でPythonを使ったAIやシステムを開発しているファントム

Navigation
群馬県でPythonを使ったAIやシステムを開発しているファントム

群馬県でPythonを使ったAIやシステムを開発しているファントムです。企業の経営課題を最適なテクノロジーで解決します。テックブログではPythonを中心にプログラミングに役立つ情報を発信しています。

投稿を検索する


  • 株式会社ファントム コーポレートサイト

カテゴリー



  • AWS 16
  • Django 45
  • FastAPI 4
  • Flask 8
  • GCP 1
  • Information 37
  • Other 32
  • PHP 2
  • Python 93
  • Pythonista 3
  • Rust 1

タグ


Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n IAM Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Sentry slack tqdm uWSGI venv Vue.js youtube
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。

© 2022 Fantom, Inc.

Hydra WordPress Theme by EckoThemes.

Published with WordPress.

Related Articles

Filter by Category

  • Python(93)
  • Django(45)
  • Information(37)
  • Other(32)
  • AWS(16)
  • Flask(8)
  • FastAPI(4)
  • Pythonista(3)
  • PHP(2)
  • GCP(1)
  • Rust(1)

Filter by Author

  • EIGHT (14)
  • hayai017 (2)
  • press (196)
Back to Latest Articles
Python

OpenCVで画像から輪郭を上手く抽出する

pythonのOpenCVで輪郭を上手く抽出することができなかったが、いくつかの改善点により上手く行った経緯をここに書き残しておく。 改善前 これは50×50のスカートの画像である。単にfindcontourし […]

Posted on 7th 3月 2022 by EIGHT

Python

Jupyter NotebookでもBlackでコードフォーマット

Jupyter NotebookでもBlackでコードフォーマット コードの可読性を上げて保守性を高めたり、コードの属人化を防いで生産性を向上させるためのルール(コーディング規約)に則った開発を行うために、ファントムでは […]

Posted on 1st 3月 2022 by press

Python

PythonのRequestsを使ってSlackに通知

PythonのRequestsを使ってSlackに通知 フォームから送られた内容やプログラムの処理結果や途中結果をSlackに通知する方法です。 以下のコードのBOT USER TOKENとCHANNEL NAMEを任意 […]

Posted on 28th 2月 2022 by press

Information

2022年度 採用についてのお知らせ

2022年度 採用についてのお知らせ 概要2022年度の採用募集を開始します。(フルタイム、副業問わずビデオ会議等で意見交換からでもOKです。) 募集職種・インフラエンジニア・ウェブアプリケーションエンジニア・機械学習エ […]

Posted on 28th 2月 2022 by press

Python

Pythonのf文字列を使った書式パターン

Pythonのf文字列を使った書式パターン この記事で紹介したf文字列を使った文字列の操作ですが、文字列に変数を埋め込む際に書式を指定できます。0埋めして文字数を揃えたり、カンマで桁を区切ることも可能です。 カンマで桁区 […]

Posted on 27th 2月 2022 by press

Python

Pythonのf文字列を使った文字列の操作

Pythonのf文字列を使った文字列の操作 Pythonのf文字列は{1}や{a}のように変数を{}(波括弧)で囲うことで、文字列の中に変数を挿入できるので直感的な記述ができるようになります。従来のように複数の変数や文字 […]

Posted on 22nd 2月 2022 by press

Python

Pythonのargparseでコマンドライン引数をパース

Pythonのargparseでコマンドライン引数をパース argparseモジュールを使って、Pythonを実行する際にコマンドライン引数を指定してプログラム内に情報を渡す方法です。 引数によって処理を変えたり、別々の […]

Posted on 21st 2月 2022 by press

Information

Announcement about Internships for 2022

Announcement about Internships for 2022 日本語のページ OverviewWe’re now accepting applications for full remote […]

Posted on 4th 2月 2022 by press

Information

2022年度 インターンシップについてのお知らせ

2022年度 インターンシップについてのお知らせ For English page 概要2022年度のインターンシップの募集を開始します。 募集職種・インフラエンジニア・ウェブアプリケーションエンジニア・機械学習エンジニ […]

Posted on 3rd 2月 2022 by press

Information

最新情報をお届けするメルマガ始めます

最新情報をお届けするメルマガ始めます 本ブログも開始から3年ほどが経過しこれまでに多くの方にアクセスしていただきました。なかにはブログ経由でスタッフや学生インターンとして採用にいたったり、新規プロジェクト、新規案件をまか […]

Posted on 3rd 2月 2022 by press

Python

ERROR: ResolutionImpossible

ERROR: ResolutionImpossible docker-composeコマンドでビルドした際にERROR: ResolutionImpossibleというエラーが発生しました。このエラーは複数の原因があるよ […]

Posted on 2nd 2月 2022 by press

Python

PyCharm&DockerでもBlackでコードフォーマット

PyCharm&DockerでもBlackでコードフォーマット venvなどで環境構築されたプロジェクトであれば、PyCharmのFile Wacherというプラグインでファイルの保存時にBlackによるコードの […]

Posted on 29th 1月 2022 by press

Python

Pythonでソートが効かないリストを文字列を操作してソートさせる

Pythonでソートが効かないリストを文字列を操作してソートさせる [‘01234_B.jpg?X=n…’,‘12340_A.jpg?X=n…’,& […]

Posted on 16th 1月 2022 by press

Python

PythonでXserverからメール送信

PythonでXserverからメール送信 レンタルサーバーで処理が終わった時や進捗を確認したいときにPythonでメールを送る方法です。今回はXserverでPythonを実行していますが、他のレンタルサーバーでもホス […]

Posted on 12th 1月 2022 by press

Python

UnicodeEncodeError: ‘ascii’ codec can’t encode

UnicodeEncodeError: ‘ascii’ codec can’t encode Pythonのprint() 関数で文字列を出力する時に以下の様なUnicodeEncod […]

Posted on 12th 1月 2022 by press

Other

2021年に最も読まれた記事ランキング

2021年に最も読まれた記事ランキング 早いもので今年も残すところあとわずかとなりました。今年のまとめとして2021年に最も読まれたブログをランキング形式で発表します。 第5位 第4位 第3位 第2位 第1位 1位、2位 […]

Posted on 30th 12月 2021 by press

Other

dockerignoreで転送に時間がかかるファイルを除外

dockerignoreで転送に時間がかかるファイルを除外 数GBを超えるSQLiteやメディアデータを含むプロジェクトをDocker Composeで起動する際に、ファイルの転送に時間がかかってしまいビルドがなかなか終 […]

Posted on 29th 12月 2021 by press

Other

Docker Composeで起動したコンテナ内に入る

Docker Composeで起動したコンテナ内に入る Docker Composeで起動したコンテナ内に入って処理やコマンドを実行する方法です。 コンテナ内に入るコマンド docker-compose up -dでコン […]

Posted on 29th 12月 2021 by press

Flask

Failed to find Flask application or factory in module ‘NAME’.

Failed to find Flask application or factory in module ‘NAME’. DockerでFlaskアプリケーションを起動する際にFailed to […]

Posted on 29th 12月 2021 by press

Flask

Dockerで起動するFlaskプロジェクトをPyCharmのデバッグモードで起動

Dockerで起動するFlaskプロジェクトをPyCharmのデバッグモードで起動 前回からの続きです。 前回作成したFlaskプロジェクトをPyCharmのデバッグモードで起動して、ブレークポイントを設定して任意の行で […]

Posted on 25th 12月 2021 by press

View Latest Posts
Python

OpenCVで画像から輪郭を上手く抽出する


EIGHT
OpenCVで画像から輪郭を上手く抽出する
Posted on 7th 3月 2022 by EIGHT
2024年度 インターンシップ 募集開始

pythonのOpenCVで輪郭を上手く抽出することができなかったが、いくつかの改善点により上手く行った経緯をここに書き残しておく。

改善前

これは50×50のスカートの画像である。単にfindcontourしてdrawcontourするだけだとこのように上手く輪郭が抽出されなかった。

そこで、次のような変更をした。

  1. 画像をresizeして200×200にする
  2. thresholdの閾値を30程度まで下げる
  3. 外枠を対象外にする

50×50では非常に荒いdot絵であったものが、1によりある程度形を検出できるようになったことで輪郭判定がしやすくなったと思われる。
また、2により薄い線も検出対象になり、より全体像がわかりやすくなった。閾値がデフォルトのままだと線の薄いところを認識せずに輪郭線が途切れてしまうため、十分に小さくする必要がある。ただし、小さすぎると背景などを認識してしまうので調整が必要である。

結果

このように上手く検出できるようになった。

コード


img = cv2.imread(path, 1)
img = cv2.resize(img, dsize=(200,200)) 
img = cv2.bitwise_not(image)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, img_binary = cv2.threshold(img_gray, 30, 255,cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(img_binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
#黒字の背景に輪郭だけ抽出する
contour_mask = np.zeros_like(img_binary)
img_contour = cv2.drawContours(contour_mask, contours, -1, 255)

#外枠削除
img_contour[0,:] = 0
img_contour[:,0] = 0
img_contour[-1,:] = 0
img_contour[:,-1] = 0

ファントムYouTubeチャンネル

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    EIGHT
    • OpenCV
    • Share Article:
    • Twitter
    • Facebook
    • Pinterest
    • LinkedIn
    • Reddit

    Related Articles

    Django

    DjangoでDateTimeFieldが今日のデータを取得する方法

    Djangoのモデル上でDateTimeField型のデータが今日の日付のデータを取得する方法です。 1つ目00:00:00から23:59:59までの範囲を条件に取得します。 2つ目今日の日付が含まれるものを条件に取得し […]

    Posted on 26th 4月 2019 by press
    Python

    Beautiful Soupでbrタグを改行コードに変換する

    Beautiful Soupでbrタグを改行コードに変換する Beautiful Soupでスクレイピングしたdivタグ内にbrタグがあった際に改行コードに変換する方法です。以下のコードはbrタグが複数ある場合にも対応し […]

    Posted on 27th 1月 2020 by press