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

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

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

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

Python

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

Q&A

2回答

1130閲覧

二値化した画像から特定の位置の座標を得るには

kousuke11

総合スコア4

OpenCV

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

Python

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

0グッド

0クリップ

投稿2019/12/20 14:58

前提・実現したいこと

二値化したカメラ画像のx座標を習得し、その値をつかって条件分岐させたい

発生している問題・エラーメッセージ

index = np.dstack(np.where(thresh == 255))で座標は入手できるが条件分岐に当てはめられない。

該当のソースコード

 開発環境 opencv,python

# -*- coding: utf-8 -*- import cv2 import numpy as np # VideoCaptureのインスタンスを作成する。 cap = cv2.VideoCapture(0) while (1): #VideoCaptureから1フレーム読み込む ret, frame = cap.read() #cv2.imshow('Capture',frame) #グレイスケール化 gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #塗りつぶし処理 cv2.rectangle(gray, (0, 0), (640, 230), (0, 0, 0), thickness=-1) cv2.rectangle(gray, (0, 250), (640, 480), (0, 0, 0), thickness=-1) cv2.imshow('grayscale',gray) #大津の二値化 blur = cv2.GaussianBlur(gray,(5,5),0) ret, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_OTSU) cv2.imshow('thresh',thresh) # 値が 255 の座標 index = np.dstack(np.where(thresh == 255)) print('輝度値が255の座標一覧:\n', index) #(返り値の座標は(Y座標,X座標)になっているらしい) #x座標テスト try: if (200<=x<400): print('認識') except NameError: print('認識なし') # キー入力待って、k がqだったらBreakする key = cv2.waitKey(1) if key == ord('q'): break cap.release() cv2.destroyAllWindows()

試したこと

座標テスト内のtry:if (200<=x<400):~の[x]をいろいろ変えてみたが条件分岐できない。
np.whereでどのような形で格納されているのか。

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

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

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

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

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

guest

回答2

0

二値化したカメラ画像のx座標を習得し、その値をつかって条件分岐させたい

投稿前に、質問文を読み直してみましたか?
「カメラ画像のx座標」とは、なんですか。大きな対象の一部を撮っているので、画像から撮影対象のどの部分を撮っているかを判別するのでしょうか。

実行した結果、どのような期待に対して、実際にどのようになるのでしょうか。
バグとは、「プログラムの間違い」と言われますが、本当のところは、期待と実際に違いがあることです。第三者には、期待と実際がわからなければ、歓談はできません。

if (200<=x<400):

人は、この書き方をよくしますが、プログラミング言語でこの書き方ができるものはとても珍しいです。Python ではできません。条件は一つずつ並べて下さい。
失礼。Pythonはできました。

if 200 <= x < 400:

投稿2019/12/21 00:00

編集2020/01/18 07:29
Q71

総合スコア995

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

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

0

条件式の書き方多分あってないし、xってどこから出てきた変数なのか謎では

投稿2019/12/20 17:38

yumetodo

総合スコア5850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問