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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

299閲覧

python+opencvのデータ取得について

garyuuin

総合スコア8

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2017/11/05 11:53

pythonとopencvで特徴量を座標で取得したのですがそれを以下のコードのデータの部分に連続して保存する方法が分かりません。わかる方が居たら教えてください。このコードでは最後の座標しか取得できていません。

import cv2 import sys import numpy as np import matplotlib.pyplot as plt im = cv2.imread("1.jpg") if im is None: print('non file') sys.exit() averages = im.mean(0).mean(0) detecor = cv2.FeatureDetector_create('ORB') points = detecor.detect(im) i = 0 for point in points: print (point.pt[0],point.pt[1]) i +=1 xi = point.pt[0] yi = point.pt[1] data = [(xi, yi), (xi, yi), (9, 11)]//この部分に座標の数だけ数値を入れていきたい(10個の特徴量なら10個の座標がここに10個横並びで座標を取得したい)

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

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

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

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

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

guest

回答1

0

ベストアンサー

次のようにすればいいです。

Python

1data = [] 2for point in points: 3 print point.pt 4 data.append(point.pt)

なお、標準出力が必要ないならリスト内包で書けます。

Python

1data = [point.pt for point in points]

変数iの存在意義と、(9, 11)の意味が分からなかったので、そこは無視しています。

おまけ

次のようにすれば内包表記で出力も出来ますが、いわゆるクソコードなのでお勧めしません。

Python

1data = [(print(point), point)[1] for point in points]

投稿2017/11/05 12:17

編集2017/11/06 04:50
LouiS0616

総合スコア35660

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

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

garyuuin

2017/11/06 02:16

無事できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問