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

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

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

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

Python

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

Q&A

解決済

2回答

931閲覧

足の画像上で横幅を実寸で表すには

hikari.13

総合スコア7

OpenCV

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

Python

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

0グッド

0クリップ

投稿2021/07/21 11:10

編集2021/07/21 11:38

現在Pythonを勉強中の初学者になります。
足の画像上で2点を結び、その長さを測りたいと思っていたのですが
ユークリッド距離を使用したもののこれからどう実寸の距離を出せばよろしいでしょうか?

import cv2 import numpy as np from matplotlib import pyplot as plt from __future__ import print_function from skimage.feature import peak_local_max from skimage.morphology import watershed from scipy import ndimage from scipy.spatial import distance img = cv2.imread(*********, 1) height = img.shape[0] width = img.shape[1] img1 = cv2.resize(img , (int(width*0.5), int(height*0.5))) class PointList(): def __init__(self, npoints): self.npoints = npoints self.ptlist = np.empty((npoints, 2), dtype=int)#2次元配列 self.pos = 0 def add(self, x, y): if self.pos < self.npoints: f=self.ptlist[ self.pos,:] = [x, y] print("f",f) self.pos += 1 return True return False def onMouse(event, x, y, flag, params): wname, img, ptlist = params if event == cv2.EVENT_MOUSEMOVE: # マウスが移動したときにx線とy線を更新する img2 = np.copy(img) h, w = img2.shape[0], img2.shape[1] #縦、横 cv2.line(img2, (x, 0), (x, h - 1), (255, 0, 0)) cv2.line(img2, (0, y), (w - 1, y), (255, 0, 0)) cv2.imshow(wname, img2) if event == cv2.EVENT_LBUTTONDOWN: # レフトボタンをクリックしたとき、ptlist配列にx,y座標を格納する if ptlist.add(x, y): print('[%d] ( %d, %d )' % (ptlist.pos - 1, x, y)) cv2.circle(img1, (x, y), 3, (0, 255, 0), 3) cv2.imshow(wname, img1) else: print('All points have selected. Press ESC-key.') if(ptlist.pos == ptlist.npoints): print("ptlist.ptlist",ptlist.ptlist) xx=cv2.line(img, (ptlist.ptlist[0][0], ptlist.ptlist[0][1]), (ptlist.ptlist[1][0], ptlist.ptlist[1][1]), (0, 255, 0), 3) aa=np.array([ptlist.ptlist[0][0]]) bb=np.array([ptlist.ptlist[0][1]]) cc=np.array([ptlist.ptlist[1][0]]) dd=np.array([ptlist.ptlist[1][1]]) for a in aa: print(a) for b in bb: print(b) for c in cc: print(c) for d in dd: print(d) aca=np.array([a,b]) bcb=np.array([c,d]) df=bcb - aca print(np.linalg.norm(df)) if __name__ == '__main__': wname = "MouseEven" cv2.namedWindow(wname) npoints = 2 ptlist = PointList(npoints) cv2.setMouseCallback(wname, onMouse, [wname, img1, ptlist]) cv2.waitKey() cv2.destroyAllWindows()

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

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

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

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

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

anozon

2021/07/21 11:14

コードブロックで囲んでください
y_waiwai

2021/07/21 11:31

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
hikari.13

2021/07/21 11:38

失礼致しました。 ご確認の程よろしくお願い致します。
guest

回答2

0

ベストアンサー

足の画像

とだけ言うと,そのバリエーションは無限大なわけで…

画像自体や撮影条件等の何らかの前提条件が無いと,画像上のピクセル座標だけから実寸を出すのは無理でしょう.

  • (既出の話)実寸寸法の推測の助けになる何かを足と一緒に写す
  • ステレオカメラみたいな,実寸を推定可能な仕組みを用いて撮影する
  • カメラと,被写体たる足 の間の相対的な位置姿勢関係をほぼ固定した状態で撮影する
  • その他,足の裏をスキャナでスキャンした画像とか?

みたいな,何かしらの仕組みを仕込む必要があるでしょう.
(求める実寸の精度次第で方法の 使える/使えない とか,撮影条件の厳しさとかが変わるであろう)

投稿2021/07/22 01:39

fana

総合スコア11708

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

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

hikari.13

2021/07/22 08:03

ご指摘ありがとうございます。 前提条件を設定し再度試してみます!
guest

0

hikari.13さんの手元に、足の写真が一枚あるとします。その写真には定規とかマッチ箱とかは写っていません。

そこに写っている足のかかとからつま先までの長さを知りたいとき、hikari.13さんは何を考えて何をしますか。
それを思いつけるならば、その手順をプログラムにすればよいでしょう。

私には、手掛かりになるものの写っていない写真を見て足の実寸の長さを出すようなことはできないので、手順をプログラムにすることができません。

投稿2021/07/22 00:09

ppaul

総合スコア24666

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

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

hikari.13

2021/07/22 08:06

ご指摘ありがとうございます。 fanaさんのご指摘にあった前提条件を設定し試してます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問