0
私は灰色の画像のピクセルを含むDataFrameを持っています。それは、画素がどの画像に属するかを示すn
と、画素がどれくらい暗いかを示すpixel
の2つの列を有する。私が自分で計算したヒストグラムは、ビルド中のものと異なって見えるのはなぜですか?
plt.figure()
ggplot(aes(x='pixel'), data=pixelDF) + \
geom_histogram(binwidth=8) + \
xlab('pixels') + \
ylab('') + \
ggtitle('Histogram of pixels') + \
scale_y_log() + \
facet_grid(y='n')
でピクセルを印刷するとき、私はかなり異なる画像を取得する私は
を取得するが、私は
def my_historgram(to_histogram):
histogram = np.histogram(to_histogram, bins=32, range=(0, 255), weights=None, density=False)
return (histogram)
def get_pixel(df, i):
return (df.loc[df['n'] == i]['pixel'])
def hist_calc(hist):
return(np.log(hist)/sum(np.log(hist)))
imageNr = pixelDF['n'].drop_duplicates().tolist() hist, bin_edges = my_historgram(get_pixel(pixelDF, imageNr[0])) histograms = pd.DataFrame({
'binNr': range(len(hist)),
'binValue_' + str(imageNr[0]): pd.Series(hist_calc(hist))}).set_index('binNr') for i in imageNr[1:]:
hist, bin_edges = my_historgram(get_pixel(pixelDF, i))
histogram = pd.DataFrame({
'binNr': range(len(hist)),
'binValue_' + str(i): pd.Series(hist_calc(hist))}).set_index('binNr')
histograms = histograms.join(histogram) histograms = histograms.reset_index()
### Print new type of Histogram
plt.figure() plotDF = pd.melt(histograms, id_vars=['binNr'], var_name='imageNr', value_name='binValue')
ggplot(aes(x='factor(binNr)', weight='binValue'), data=plotDF) + \
geom_bar() + \
xlab('binNr') + \
ylab('') + \
ggtitle('Histograms of pixels') + \
facet_grid(y='imageNr')
で最初にそれを変換するとき
なぜですか? 2番目の画像の処理で何が間違っていますか? 「jeremycg」へ
お使いのバージョンが治療変数としてbinNrを処理していて、ソートする必要があるようです。 – jeremycg
@jeremycg:どうすれば変更できますか?技術的な解決策は何ですか? – Make42