のbin Lab色空間は、私がLab色空間離散化や2次元
を持っていると私は、「ビン」10×10の正方形のグリッドの色空間にしたいです。
したがって、最初のビンは(-110、-110)から(-100、-100)になり、次のビンは(-100、-110)から(-90、-100)のようになります。これらのビンはビン1とビン2になる可能性があります。
np.digitize()が見えましたが、1次元ビンを渡す必要があります。結果はちょっと大雑把に見えること
for fn in filenames:
image = color.rgb2lab(io.imread(fn))
ab = image[:,:,1:]
width,height,d = ab.shape
reshaped_ab = np.reshape(ab,(width*height,d))
print reshaped_ab.shape
images.append(reshaped_ab)
all_abs = np.vstack(images)
all_abs = shuffle(all_abs,random_state=0)
sns
df = pd.DataFrame(all_abs[:3000],columns=["a","b"])
top_a,top_b = df.max()
bottom_a,bottom_b = df.min()
range_a = top_a-bottom_a
range_b = top_b-bottom_b
corner_a = bottom_a
corner_b = bottom_b
bins = []
for i in xrange(int(range_a/10)):
for j in xrange(int(range_b/10)):
bins.append([corner_a,corner_b,corner_a+10,corner_b+10])
corner_b = bottom_b+10
corner_a = corner_a+10
が、「ビン」:私が試してみました
初歩的なアプローチがこれです。 1つは、色空間が四角い配置で値を持ち、そのコードが最大値と最小値からかなり離れているので、多くの空のビンがあります。また、四捨五入によって問題が発生する可能性があります。私はこれを行うより良い方法があるのだろうかと思っていますか?色のヒストグラムについて聞いたことがありますが、各ヒストグラムは各ビンの値を数えます。私は値を必要としませんが、箱は私がここで探しているものだと思います。
理想的には、ビンはそれぞれラベルを持つオブジェクトです。だから私はbins.indices [0]を行うことができ、それは私が与えたバウンディングボックスを返します。新しい色がcolor = [15.342、-6.534]なら、color.binは15または15番目のbinを返します。
私はこれが多くのことを求めていることを認識していますが、色空間を扱う人にとってはやや一般的な必要があると思います。だから、私が求めていることを達成できるPythonモジュールやツールはありますか?どのようにこれにアプローチしますか?ありがとう!