2016-08-09 1 views
-4

識別されたオブジェクトに基づいて、画像から選択パッチを作成します。は、どのように私はゼロに初期化され、すべての要素を持つnumpyの行列を作成している

[[[0 0 0 0] 
    [0 0 0 0] 
    [0 0 0 0] 
... 

これは、Webページのスクリーンショットの画像に似ていることです

私は、スクリーンショットイメージ内のラジオボタン、テキストボックス、ドロップダウンなどのさまざまなHTMLオブジェクトに関心のあるいくつかの矩形領域を特定し、それらの1,2,3などの固定値を割り当てました生成されたnumpy行列内の各オブジェクト領域。

だから、結果マトリックスは、ほとんどのようになります。私は今、スクリーンショットの画像からパッチを畳み込みニューラルネットワークに設定されたデータを準備したい

[[[0 0 0 0] 
    [0 0 0 0] 
    [0 0 0 0] 
    ..., 
[[1 1 1 1] 
    [1 1 1 1] 
    [1 1 1 1] 
    ..., 
    [0 0 0 0] 
    [2 2 2 2] 
    [0 0 0 0] 
    ..., 

。 CNNに供給されるデータの品質を向上させる目的で、私はパッチをフィルタリングし、以前に検出されたTextbox、Radiobuttonなどのオブジェクトが存在するCNNにパッチのみを提供したいと考えています(Radiobuttonとドロップダウンの選択はそこに完全にいれ、少なくとも50%のボタンをパッチに含める必要があります)。どのようにそれがPythonで実現することができる任意のアイデア?

+0

'scipy.misc.imshow()' – Julien

+0

は、応答をありがとうございました。私は 'RuntimeError:画像ビューアを実行できませんでした。この関数を使用しようとしています。理由は分かりません。 – shripati007

+0

4d配列はどのようにイメージになっていますか?画像は2dで、最終的にはカラー画像では3次元、3次元ではRGBをコード化します。だから、基本的には、あなたの4d配列がどのように作成され、どのようにあなたのイメージを含んでいるのかを説明する必要があります。あなたの質問はあまりにも不明です。 – Julien

答えて

0

非常に単純なアプローチ

maxY, maxX = np.shape(theMatrix) 

for curY in range(0,maxY): 
    for curX in range(0,maxX): 
     print theMatrix[curY,curX], 
    print " " 
0

あなただけの2Dアレイをプロットし、プロット機能を使用することができます。たとえば取る:あなたはpyplot.plot(x, 'ro')を使用している場合

import numpy as np 
import matplotlib.pyplot as pyplot 
x = np.random.rand(3, 2) 

くれ

array([[ 0.53255518, 0.04687357], 
     [ 0.4600085 , 0.73059902], 
     [ 0.7153942 , 0.68812506]]) 

をもたらすであろう、それはあなたに下記の図をプロットします。

2d array plot

行番号は、x軸に置かれ、値はy軸にプロットされています。しかし、あなたの問題の性質から、私はx軸に入れる列番号とy軸の値が必要だと思う。これを行うには、行列を単純に転置します。

pyplot.plot(x.T,'ro') 
pyplot.show() 

ここで、(同じアレイに対して)以下の図が得られます。

2d array transpose plot

+0

私の場合、私は4次元行列を持っています。その場合にはうまくいくのでしょうか? – shripati007

+1

pyplot.plotは4D配列をプロットできません。それは1Dまたは2Dでなければなりません。 1200X1000サイズの配列は、配列に1200行と1000列があり、それが2D配列であることを人々に理解させるため、質問を少し更新する必要があります。 あなたのアレイのより小さなバージョンと希望の出力のようないくつかの追加情報を提供してください – Prasanna

+0

ごめんなさい。質問が更新されました。 – shripati007

関連する問題