前提・実現したいこと
二値化したカメラ画像の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でどのような形で格納されているのか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。