2017-01-21 13 views
-1

多くの論文各セグメントは半透明色のマスクで覆われている例を示します。私はイメージマスクを使用している場合Matplotlibで半透明の色で領域を塗りつぶす方法は?画像セグメンテーションに

enter image description here

、私はmatplotlibのに同じ結果を達成することができますか?

EDIT:

私の場合にはマスクが0手段(num_segments + 1)、0から番号を充填した画像と同じ幅と高さを持つ配列として定義される「しません任意の色を適用する」を意味し、他の数字は「この画素をある種の色で覆う」ことを意味する。しかし、マスクの別の表現がより適切であれば、私はそれに変換しようとすることができます。

  1. 着色領域はfill()plot(..., 'o')ような関数ので、ライン、四角形や円などの規則的な形状ではありません。ここで

    はそれが些細な音しないように私はこの作業で見つかった合併症のカップルですまたはfill_between()はここでは機能しません。彼らはさらにcontoursではありません(少なくとも私はここにそれらを適用する方法は見当たりません)。

  2. アルファチャンネルを変更することはプロットで最も一般的なことではないので、Matplotlibのドキュメントではほとんど言及されていません。
+0

です。数時間のグーグルで実験をしても何の結果も得られていないので、質問はSOに答えられていないだけでなく、コメントなしで2度も下書きされていることがわかりました。参考のために、Matplotlibの通常のグラフと少なくとも2つの違いがあります:1)画像の上にプロットする領域は、正方形や円のような規則的な形状ではなくむしろ不規則な塗りつぶした輪郭を持ちます。 2)あまりにも文書で言及されていないアルファチャンネルがある – ffriend

+0

downvotesについて:私は彼らが何らかの重要な詳細を含むように質問を編集する前に作られたと思います。 ? " - 現実世界の問題に質問する。私が質問に答えたとき、私はそのような細部を持っていなかったし、私が持っていれば私はさらに役立つ答えを提供していただろうと確信している。 Howevr、私はあなたのニーズを(あなたがそれを受け入れたように)カバーしていると思います。それができない場合は、さらに詳しい情報をお気軽にお尋ねください。 – ImportanceOfBeingErnest

+0

あなたの答えはすべての部分を提供し、それらを接続することはそれほど難しいものではありませんでした:)私は "それは可能です"という質問は、私は5,6つの異なる方向から始めて、明確にする(投稿された質問は私の第3版です)。私は、詳細を把握するのに役立つコメントや、そのようなケースを扱う方法に関する一般的な推奨事項、あるいは質問を明確にして私のユースケースを掘り下げるために使用できる関連する例を(あなたが提供したように)しかし、おそらくこれは今のところ、物事がどのように行われているかではないでしょう。 – ffriend

答えて

2

これは確実に実行できます。実装は、マスクがどのように見えるかによって異なります。ここで

はdownvotersが彼らの決定を説明し、質問を改善する方法を指摘するならば、私は感謝の例

import matplotlib.pyplot as plt 
import numpy as np 

image = plt.imread("https://i.stack.imgur.com/9qe6z.png") 

ar= np.zeros((image.shape[0],image.shape[1])) 
ar[100:300,50:150] = np.ones((200,100)) 
ar[:,322:] = np.zeros((image.shape[0],image.shape[1]-322))*np.nan 

fig,ax=plt.subplots() 
ax.imshow(image) 
ax.imshow(ar, alpha=0.5, cmap="RdBu") 

plt.show() 

enter image description here

+0

厳密な検査の後、あなたの質問が実際に私のニーズをカバーしていることがわかります。今後の参考として、ここで私にとって最も重要な点を挙げます:1)不規則な領域を描画するために 'imshow()'が使われるかもしれません。 2) 'imshow()'は直接 'alpha'パラメータを受け取ります。 3)(最も重要な) 'np。(np.zeros()とは対照的に、黒色になるか、またはすべての領域に影響を与える 'alpha = 0'を使用します)。貴重なヒントありがとう! – ffriend

関連する問題