私はKNNメソッドを使用して、顔写真に基づいて人々を人種に分類しようとしています。私は純粋な白い背景に顔のデータセットを持っています[255,255,255]。純粋な白の色ヒストグラムへの影響
フィード入力として、私はカラーヒストグラムの値を使用しています。 KNNのパフォーマンスを向上させるためにヒストグラムから背景色を削除する必要があると言われました。
問題:写真から背景を無視したマスクを作成すると、ヒストグラムが1つ小さなビットに変化することはありません。
質問:私は色の理論にはあまり関係がありません。純粋な白色が色のヒストグラムの形にまったく影響しますか?私は、(下の画像のように)ヒストグラムが変化するだけの中心的なマスクを使用します。
これはマスクアプリケーション
ソース画像の正しさをテストするための背景
単純なマスクを無視して、Iピクチャから構成マスクでありますヒストグラムカウントの場合
これは、マスクを使用していない画像と、白色を無視して作成したマスクから得たヒストグラムです。
これは私の単純なマスクを使用して画像を切り抜くことから得られるヒストグラムです。ヒストグラムの変化、私はヒストグラムをカウントするための私の方法が正しいと仮定します。マスクを作成するための
# loop over the image channels
for (chan, color) in zip(channels, colors):
# create a histogram for the current channel and
# concatenate the resulting histograms for each channel
hist_full = opencv.calcHist([chan], [0], mask, [bin_amount], [0, bin_amount])
# plot the histogram
plt.plot(hist_full, color=color)
plt.xlim([0, bin_amount])
plt.show()
コード:ヒストグラムをカウントする
コード
mask = np.zeros(image.shape[:2], np.uint8)
# simple mask option
# mask[75:175, 75:175] = 255
# create a mask to ignore white background in the histogram
for row in range(0, len(image)):
for col in range(0, len(image[0])):
if (image[row][col] != np.asarray(prop.background)).all():
try:
mask[row][col] = 255
except IndexError:
print(col)
多くのお役に立っていただきありがとうございます。 –