我要使用python删除图像的背景并绘制图像其余部分的直方图(条形图)。特别是,我想删除图像已嵌入其中的黑色背景。黑色背景位于图像的右上角,左上角,右下角和左下角。以下是我的图片:
图像的有用部分是中心的圆形物体,我想为图像的有用部分绘制直方图。如何删除上述背景并绘制直方图?
以下是我到目前为止所做的代码。
from PIL import Image
import matplotlib.pyplot as plt
from matplotlib.pyplot import bar
import numpy as np
im_gray = Image.open('image.png').convert('L')
im_arr = np.array( im_gray )
im_flat = im_arr.ravel()
mark_bkg = np.where( im_flat != im_arr[0,0] )[0]
im_no_bkg = im_flat[ mark_bkg ]
hist, bin_edges = np.histogram(im_no_bkg, bins=30, density=False)
plt.figure(1)
bar( x=bin_edges[:-1], height=hist, width=1.0, bottom=None, align='center', data=None )
plt.show()