0
私はカーブを表示する実験からいくつかのスクリーンショットを持っており、そのカーブを配列に抽出してデータを分析したいと考えています。バイナリイメージのカーブを確認
私の方法の最初の部分は、曲線を残すだけでよく選択されたしきい値を持つ画像をバイナリに変換することです。これは正常に動作しますが、カーブから配列を抽出する2番目の部分はありません。私は、絵を見て白いピクセルを特定する "素朴な"方法を試しましたが、結果は期待されたもののどこにもありません。
誰かに解決策がありますか?
import numpy as np
import matplotlib.pyplot as plt
import PIL.Image as img
gray = img.open('0100k.jpg').convert('L')
bw = gray.point(lambda x: 0 if x<240 else 255, '1')
bw = bw.convert('1')
bw.show()
pix = np.array(bw)
(n,m) = pix.shape
curve = np.zeros(n)
for i in range(n):
for j in range(m):
if pix[i,j] == 1:
curve[i] = j
plt.plot(curve)
plt.show()
私は助けることが疑問に思うことができません'np.array'はリストのリストを返すからです。最初の要素は内部リスト(垂直)にアクセスし、2番目の要素は各リストの個々の要素(水平)にアクセスします。 –
あなたは正しいです。また、0,0ポイントは左上隅にあるので、私はちょうどこのようなより良いことがわかりました: '(n、m)= pix.shape curve = np.zeros(m) for範囲(n)内: jの範囲(m): pix [i、j] == 1の場合: 曲線[j] = ni' – Izzul
ああ、まあ、でる。それは私にとっても欲求不満の原因です。すべての数学では、原点は左下隅にあります。なぜ多くの図書館がそうでなければ私より先にいると主張するのか –