1
私はPythonとコーディングに新しいです。私は値の範囲を持つピクセルを含む.fitsイメージを持っています。私は、要件に従う、この画像の画素を見つけたい:スレッシュホールドされた画像の最下位ピクセルの座標を見つけるには?
1)(1)が満たされている場合、画素の値は、ピクセルは、可能な限り低いY COを有する6900
2)の閾値以上であります-ordinates。
つまり、私の画像に値> 6900の100ピクセルがある場合、画像の最下部に最も近い100個のピクセルを探したいと思います。
私は以下が含まれているしきい値ルールを追加することによって、最初の部分を達成した:
#open .fits file
hdulist = fits.open(f, ignore_missing_end=True)
hdulist.info()
#close file and save data as numpy array
scidata = hdulist[0].data
hdulist.close()
img = np.array(scidata)
#determine threshold value and apply thresholding to image
threshold = 6900
test = np.greater_equal(img, threshold)
np.count_nonzero(~np.isnan(test))
#plot image
plt.imshow(img, cmap='magma')
plt.show()
しかし、I(2)を達成するのに困難を有しています。特定の値のしきい値を超えるピクセルの可能な最小のy座標を識別するコマンドがnumpyにありますか?
多くの感謝!
あなたはリストのリストにすべてのキャスト、numpyの配列を転置してみてください、その後、各渡って繰り返すことができますthreshholding後のmin値の 'col_list.index(value)'を呼び出します。 – MLavrentyev
1.質問:あなたの配列に 'nan 'がありますか? 1行はこれを示していますが、この行は 'nan'を取り除きません。 2. 'img'の形は何ですか?私はそれが二次元だと仮定します。その場合は、最小値が定義されていない可能性があります。異なるx値ごとに最小値を設定するか、すべての最小値が同じ(最小)y値を持つようにしますか? –
1.私の配列には 'nan'という値はありません - ' np.count_nonzero(〜np.isnan(test)) 'という行はしきい値以下のすべてのピクセルで' nan'と設定されていました。私は既に 'test'を線が役に立たないという閾値テストとして定義しています。 –