如何在比较两个不同目录中的图像时保留 python 中的顺序?

发布于 2025-01-12 04:15:30 字数 975 浏览 2 评论 0原文

我正在比较两个不同目录中的图像。我编写代码,但比较的顺序是

{ 0,1,10,11,12,...,19,2,20,21,..} 不像 {0,1,2,3,... ,9,10,11,12,...}

L1 = os.listdir("D:\\image_dir_1\\")

image_list_1 = list()
image_list_2 = list()
final_i = list()
final_j = list()
dirs = -1 

for i in L1:
    dirs = dirs + 1
    img1 = cv2.imread("D:\\image_dir_1\\" +i )
    L2 = os.listdir("D:\\image_dir_2\\"+str(dirs) +'\\')
    for j in L2:
        img2 = cv2.imread("D:\\image_dir_2\\" + str(dirs)+ '\\' +j )
        image_list_1.append(FUN_1(img1 , img2))
        image_list_2.append(FUN_2(img1 , img2))
        final_i.append(i)
        final_j.append(j)

    filei = pd.DataFrame(final_i,columns=['Col_1'])
    filej = pd.DataFrame(final_j,columns=['Col_2'])

    frame_1 = pd.DataFrame(image_list_1,columns=['c1'])
    frame_2 = pd.DataFrame(Image_list_2,columns=['c2'])
    
    final_value = pd.concat([filei, filej, frame_1,frame_2],axis=1)

final_value.to_csv('spreadsheet.csv',index=None)

I was comparing images from 2 different directories. I write code but the sequence of comparing is this

{ 0,1,10,11,12,...,19,2,20,21,..} not like {0,1,2,3,...,9,10,11,12,...}

L1 = os.listdir("D:\\image_dir_1\\")

image_list_1 = list()
image_list_2 = list()
final_i = list()
final_j = list()
dirs = -1 

for i in L1:
    dirs = dirs + 1
    img1 = cv2.imread("D:\\image_dir_1\\" +i )
    L2 = os.listdir("D:\\image_dir_2\\"+str(dirs) +'\\')
    for j in L2:
        img2 = cv2.imread("D:\\image_dir_2\\" + str(dirs)+ '\\' +j )
        image_list_1.append(FUN_1(img1 , img2))
        image_list_2.append(FUN_2(img1 , img2))
        final_i.append(i)
        final_j.append(j)

    filei = pd.DataFrame(final_i,columns=['Col_1'])
    filej = pd.DataFrame(final_j,columns=['Col_2'])

    frame_1 = pd.DataFrame(image_list_1,columns=['c1'])
    frame_2 = pd.DataFrame(Image_list_2,columns=['c2'])
    
    final_value = pd.concat([filei, filej, frame_1,frame_2],axis=1)

final_value.to_csv('spreadsheet.csv',index=None)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

递刀给你 2025-01-19 04:15:30

您必须对 L1 列表进行排序:

L1 = sorted(os.listdir("D:\\image_dir_1\\"), key=lambda str: int(str[:-4].strip()))

问题是,如果不按实际 int 值对它们进行排序,您就会按字典顺序对文件名进行排序。

You have to sort the L1 list:

L1 = sorted(os.listdir("D:\\image_dir_1\\"), key=lambda str: int(str[:-4].strip()))

The issue is that without sorting them by their actual int value, you have the files names sorted lexicographically.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文