0

次の形式の画像データが 1 つあります。

200406011215.goes12ir

print im.format, im.size, im.mode

MCIDAS (1732, 2600) L

これらの画像は、対応する値の明るさを持つ線と要素で構成されています( 0 -255)。特定のプロパティを持つ地域を対象とするスクリプトを作成しようとしています。

脚本:

import Image
im = Image.open("/home/mcidas/Documents/datos/200404031215.goes12ir")
im.show()

輝度値が である表示された画像の領域をターゲットにするにはどうすればよい> 205ですか?

指定された値を満たす画像の領域にマーク(円の場合もある)を識別して描画する方法を誰でも知っています)

4

1 に答える 1

1

numpyのブロードキャストを使用して、しきい値を超えるピクセルを除外できます。事前に画像をぼかすと、これははるかにうまく機能します。完全な動作例 (ぼかしなし) を以下に示します。必要に応じて調整してください。

import numpy as np
from pylab import *

# Generate random data with a "bright spot"
N = 100
line = np.linspace(-3,3,N)
X, Y = meshgrid(line,line)
Z  = np.exp(-((X+1)**2+(Y-1)**2)) 
Z += np.random.random(Z.shape)*.5

subplot(121)
imshow(Z,cmap=gray(), origin="lower", extent=[-3,3,-3,3])

Z2 = Z.copy()
# Identify regions that are brighter than threshold on z_scale
threshold = .8
idx = Z2>threshold

Z2[~idx] = None
Z2[idx ] = 1

subplot(122)
imshow(Z2,cmap=gray(), origin="lower", extent=[-3,3,-3,3])

# Place a dot at the "center" of the pixels found
CM = [X[idx].mean(), Y[idx].mean()]
scatter(*CM, s=100,color='red')

show()

ここに画像の説明を入力

于 2012-04-20T16:15:50.227 に答える