【问题标题】:Saving image patches into several folders based on associated values根据关联值将图像补丁保存到多个文件夹中
【发布时间】:2025-12-04 19:20:02
【问题描述】:

我正在尝试将大量图像保存到 5 个不同的文件夹中。排序机制基于与图像相关联的值。到目前为止,我已使用以下代码将其分类到两个文件夹中

if measurements.ni[idx] < 25:
                    pyplot.imsave(project_dir + '/classes/1/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')   
else: 
                pyplot.imsave(project_dir + '/classes/2/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')

代码将所有值低于 25 的图像放入 1 个文件夹,其余的放入另一个文件夹。

现在我想用 5 个不同范围的文件夹来做到这一点,例如这个不起作用的原始尴尬示例。但我认为它说明了这一点。

       if measurements.ni[idx] < 25:
                pyplot.imsave(project_dir + '/classes/1/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')   
            else if measurements.ni[idx] = (25, 100):
                pyplot.imsave(project_dir + '/classes/2/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
            else if measurements.ni[idx] = (100, 250):
                pyplot.imsave(project_dir + '/classes/3/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
            else if measurements.ni[idx] = (250, 800):
                pyplot.imsave(project_dir + '/classes/4/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
            else if measurements.ni[idx] > 800:
                pyplot.imsave(project_dir + '/classes/5/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')

我该怎么做呢?取值范围为 800。

谢谢

【问题讨论】:

    标签: image saving-data


    【解决方案1】:

    我想通了。

     if measurements.ni[idx] < 25:
                        pyplot.imsave(project_dir + '/classes/1/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')   
        if measurements.ni[idx] > 25 < 100:
                        pyplot.imsave(project_dir + '/classes/2/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
        if measurements.ni[idx] > 100 < 250:
                        pyplot.imsave(project_dir + '/classes/3/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
        if measurements.ni[idx] > 250 < 800:
                        pyplot.imsave(project_dir + '/classes/4/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
        if measurements.ni[idx] > 800:
                        pyplot.imsave(project_dir + '/classes/5/' + str(measurements.id_dedup[idx]) + '.png' ,img_patch, format='png')
    

    【讨论】: