質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

709閲覧

python cv2.HoughLinesP()でy座標を抽出したい

temps1101

総合スコア134

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/12 10:39

編集2020/04/13 04:03

pythonのcv2.HoughLinesP()で傾きのない水平線(下にあるhoge.jpgのような画像)を検出しています。線のy座標をリストから抽出したいのですが、今自分が思いついている方法が下にもあるとおり、ループで取り出す方法ですがもっと賢いアルゴリズムがはありますか?

python

1import cv2 2import nunpy as np 3 4img = cv2.imread('hoge.jpg') 5gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 6height, width = gray.shape 7threshold = int(width * 0.7) 8lines = cv2.HoughLinesP(gray, rho=1, theta=np.pi/360, threshold=threshold, 9 minLineLength=threshold, maxLineGap=5) 10 11yCoords = [] 12 13# 見てほしいのはここから 14 15for line in lines: 16 yCoords.append(line[0][1]) 17 18print(lines, yCoords, sep='\n\n')

出力はこうです:

[[[ 0 600 1919 600]] [[ 0 603 1919 603]] [[ 0 159 1919 159]] [[ 0 156 1919 156]] [[ 0 154 1919 154]] [[ 0 924 1919 924]] [[ 0 601 1919 601]] [[ 0 930 1919 930]] [[ 0 155 1919 155]] [[ 0 157 1919 157]] [[ 0 598 1919 598]] [[ 0 602 1919 602]] [[ 0 929 1919 929]] [[ 0 605 1919 605]] [[ 0 926 1919 926]] [[ 0 928 1919 928]] [[ 0 931 1919 931]] [[ 0 925 1919 925]] [[ 0 927 1919 927]] [[ 0 599 1919 599]] [[ 0 158 1919 158]]] [600, 603, 159, 156, 154, 924, 601, 930, 155, 157, 598, 602, 929, 605, 926, 928, 931, 925, 927, 599, 158]

※ちなみにhoge.jpgはこんな感じの画像です:
横線だけの画像

もしこのアルゴリズムが一番いいと思ったらコメントしてください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問