在python/opencv中找到规范化的图像熊猫
问题描述:
我有一个从视频流中捕获的图像的大型数据集,我想从中提取一个规范化的数据集。例如,数据集可能包含60%的背景,20%的背景以及20%的非常暗的图像。在python/opencv中找到规范化的图像熊猫
作为一个天真的原型,我想要计算每个图像的平均RGB和bin相似的RGB值,并从每个bin中取一个随机样本。
rgb_avg = {}
for i in img_list:
img = cv2.imread(i)
rgb_avg[i] = np.mean(img)
rgb_series = pd.Series(rgb_avg)
bins = pd.cut(rgb_series,bins=10)
这给我留下了一系列的类别,并不能真正找到如何面对这一系列工作,并从每个箱随机抽取一个很好的教程。我如何将RGB系列分成10个分箱,并从每个分箱中随机采样一个文件?
答
我能够通过完成它:
rgb_avg = {}
for i in img_list:
img = cv2.imread(i)
rgb_avg[i] = np.mean(img)
rgb_series = pd.Series(rgb_avg)
bins = pd.cut(rgb_series,bins=10)
bin_values = sorted([b.right for b in bins.unique()])
img_bins = {b : [] for b in bin_values}
for img,rgb in rgb_avg.items():
for b in bin_values:
if rgb <= b:
img_bins[b].append(img)
for b in img_bins:
img = np.random.choice(img_bins[b])
plt.imshow(cv2.imread(img))
plt.show()
未必是最有效的,但它能够完成任务。
您的代码看起来简短明了。如果它有效,我想你已经回答了你自己的问题。 –
非常感谢,把我的编辑移到了答案上。 –