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

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

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

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

Python

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

Q&A

解決済

1回答

411閲覧

opencvで特定物抽出

uriuri

総合スコア47

OpenCV

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

Python

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

0グッド

1クリップ

投稿2018/07/11 06:52

編集2018/08/06 05:27

`イメージ説明説明](de0d9317b0c0fe2607db0ac7a0df9b87.jpeg)on

結果がこうなりました。
イメージ説明
光の指す部分や地面を線分検出してしまったのですが、これらを取り除きたいと思っています。
面積の範囲を指定してやる方法がベストなのでしょうか。
アドバイスいただけると幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

画像の光の加減で、機械側としては、閾値処理の段階で同じものに見えてしまっているのです。
さすがにここまではわかるとはわかると思います。

そこで閾値処理の段階で、明度の幅を、限りなく白に近い幅にして処理をすると。
(2810c29c0e8613310405e3ec3a0766e5.jpeg)
これが
イメージ説明
これになります。
ここまで来ても、やはり太陽光がノイズとして入り込んでいるので、
そこだけ何とかすることができれば、可能かと思います。
私の、考えている限りでは、
あなたのおっしゃる通り、面積の指定をするのが
一番手っ取り早いと思います。

lang

1import sys 2import cv2 3import numpy as np 4 5args = sys.argv 6 7img = cv2.imread("hakusen.jpg") 8img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 9#閾値の幅を(200,255)に設定 10_, img3 = cv2.threshold(img2, 200, 255, cv2.THRESH_BINARY) 11img4 = cv2.cvtColor(img3, cv2.COLOR_HSV2RGB) 12cv2.imwrite('siro.jpg', img4) 13

投稿2018/07/11 08:27

jun_endo

総合スコア56

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

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

uriuri

2018/07/12 04:03 編集

回答ありがとうございます。 キャニーエッジ検出を行ったあと、各輪郭について面積計算を行い範囲指定しノイズを消そうと思ったのですが、 エラーが出てしまいます。   ・   ・ edges = cv2.Canny(gauss,100,150) # 各輪郭に対する処理 for i in range(0, len(edges)): # 輪郭の領域を計算   area = cv2.contourArea(edges[i])   if area < 100 or 150 < area:   continue   ・   ・   ・ error: OpenCV(3.4.1) /io/opencv/modules/imgproc/src/shapedescr.cpp:272: error: (-215) npoints >= 0 && (depth == 5 || depth == 4) in function contourArea 面積計算では contours,hierarchy = cv2.findContours(thresh, 1, 2) の関数でしか対応してないのでしょうか。
jun_endo

2018/07/12 07:33

申し訳ないですが、 私自身そこまで理解していないので、 回答いたしかねます 申し訳ないです、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問