2012-04-20 2 views
0

Iは、次の形式で1つの画像データを有する:どのセグメントイメージ

200406011215.goes12ir

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

MCIDAS (1732, 2600) L

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

スクリプト:私は、輝度値> 205で表示された画像の領域をターゲットにすることができますどのように

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

?私はあなたが上記のピクセルをフィルタリングするnumpyの放送を使用することができます

答えて

1

指定された値を満たしている画像)の領域上(円でもよい)を識別し、マークを描くことができますどのようにアイデアを持っている

誰でも閾値。あらかじめ画像をぼかしておくと、これははるかに良く機能します。 (ぼかしなし)完全な作業の例では、ちょうどあなたのニーズに適応、以下の通りである:

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() 

enter image description here