質問編集履歴

6

修正

2022/01/21 06:22

投稿

tiroha
tiroha

スコア109

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
  で実行できるようにしたいです。
23
23
  もしくはプログラム内でフォルダを指定して、ファルダ内のファイルすべてにプログラムを実行したいです。
24
24
 
25
- ファイルの引数、ファイル取得の関数はできたのですが、#11をどのように書きかえればいいのか分かりません。
25
+ ファイルの引数、ファイル取得の関数はできたのですが、#11をどのように書きかえればいいのか分かりません。引数で指定したフォルダ内のファイルを1つ1つループで読み込み、ハミング距離を出力したいです。
26
26
  どなたか詳しい方、ご助力お願いいたします。
27
27
  ```
28
28
  #11---関数の呼び出し

5

修正

2022/01/21 05:49

投稿

tiroha
tiroha

スコア109

test CHANGED
File without changes
test CHANGED
@@ -22,13 +22,7 @@
22
22
  で実行できるようにしたいです。
23
23
  もしくはプログラム内でフォルダを指定して、ファルダ内のファイルすべてにプログラムを実行したいです。
24
24
 
25
-
26
- ```python
27
- import sys
28
- sys.argv
29
- ```
30
- を使ってできそうな気がするのですが。
31
- 部分を変更するばできそうな気がするのですが、よ分かりません。
25
+ ファイル引数、ファイル取得の関数はできのですが、#11をどのうに書きかえればいいのか分かりません。
32
26
  どなたか詳しい方、ご助力お願いいたします。
33
27
  ```
34
28
  #11---関数の呼び出し
@@ -43,6 +37,27 @@
43
37
  from PIL import Image
44
38
  import numpy as np
45
39
  import os, re
40
+ import argparse
41
+ import sys
42
+ import pathlib
43
+
44
+ def get_filenames_of_path(path: pathlib.Path, ext: str = "*"):
45
+ """Returns a list of files in a directory/path. Uses pathlib."""
46
+ filenames = [file for file in path.glob(ext) if file.is_file()]
47
+ filenames.sort()
48
+ return filenames
49
+
50
+ def get_args():
51
+ parser = argparse.ArgumentParser(description='Evaluate result',
52
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
53
+ parser.add_argument('target_dir', type=str)
54
+ parser.add_argument('result_dir', type=str)
55
+
56
+ return parser.parse_args()
57
+ args = get_args()
58
+
59
+ result_dir = pathlib.Path.cwd() / args.result_dir
60
+ target_dir = pathlib.Path.cwd() / args.target_dir
46
61
 
47
62
  #1---Average Hashの取得
48
63
  def average_hash(fname, size = 256):
@@ -72,10 +87,11 @@
72
87
  dist1 = (aa != ac).sum()
73
88
  return dist,dist1
74
89
  #11---関数の呼び出し
75
- ahash = average_hash('test1_2D_out/000002_OUT.png')
90
+ ahash = average_hash('test4_out_bara/a/02/00353_00354_01.png')
76
- ahash1 = average_hash('test1_2D_out/000003_OUT.png')
91
+ ahash1 = average_hash('test4_out_bara/a/02/00353_00354_01.png')
77
- ahash2 = average_hash('test1_mask_bara/2D/Target/000002.png')
92
+ ahash2 = average_hash('test4_mask_bara/02/Target/out48_02.png')
78
93
  hamming_ab,hamming_ac = hamming_dist(ahash,ahash1,ahash2)
94
+
79
95
  #12---出力結果
80
96
  print(ahash)
81
97
  print("*****")

4

修正

2022/01/21 04:47

投稿

tiroha
tiroha

スコア109

test CHANGED
@@ -1 +1 @@
1
- ファル名を引数にすプログラムに修正したい
1
+ ファル名を引数にして、ファルダ内のべてのファイルにプログラムを実行させるように修正したい
test CHANGED
@@ -1,30 +1,35 @@
1
+ やりたいこと
1
- プログラム実行時にファルを引数として扱いたい。
2
+ プログラム実行時に引数をファルダ名にする、もしくはプログラム内でフォルダ指定
3
+ ②ファルダ内すべてのpngファイルにプログラムを実行
4
+
2
5
  下のコードはグレースケールで画像を読み込んで、ハミング距離を出力するプログラムです。
3
6
  このプログラムの実行は
4
7
  ```
5
- 入力:
6
- python test.py
8
+ 入力:$python test.py
7
- 出力:
8
- [0 1 0 1 0 . . . 0]
9
+ 出力:[0 1 0 1 0 . . . 0]
9
-
10
+        
10
-
11
+        
11
-
12
+        
12
13
  ハミング距離:7159
13
14
  ハミング距離:19430
14
15
  ```
15
16
  となります。
16
- これをファイルの引数をとって、
17
+ これをフの引数をとって、
17
18
  ```
18
19
  入力:
19
- python test.py file1 file2 file3
20
+ python test.py fold1 fold2 fold3
20
21
  ```
21
22
  で実行できるようにしたいです。
22
- 部分
23
+ もしくはプログラム内でフォルダを指定して、ファルダ内ファイルすべてにプログラム実行したいです。
24
+
25
+
23
26
  ```python
24
27
  import sys
25
28
  sys.argv
26
29
  ```
27
30
  を使ってできそうな気がするのですが。
31
+ 下の部分を変更するばできそうな気がするのですが、よく分かりません。
32
+ どなたか詳しい方、ご助力お願いいたします。
28
33
  ```
29
34
  #11---関数の呼び出し
30
35
  ahash = average_hash('test1_2D_out/000002_OUT.png')

3

補足

2022/01/21 04:32

投稿

tiroha
tiroha

スコア109

test CHANGED
File without changes
test CHANGED
@@ -19,7 +19,12 @@
19
19
  python test.py file1 file2 file3
20
20
  ```
21
21
  で実行できるようにしたいです。
22
+ この部分を
23
+ ```python
24
+ import sys
25
+ sys.argv
26
+ ```
22
- この部分 import sysを使って変えればできそうなのですが。
27
+ を使ってできそうな気がするのですが。
23
28
  ```
24
29
  #11---関数の呼び出し
25
30
  ahash = average_hash('test1_2D_out/000002_OUT.png')

2

補足

2022/01/21 04:09

投稿

tiroha
tiroha

スコア109

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
  これをファイルの引数をとって、
17
17
  ```
18
18
  入力:
19
- python test.py file1 file2
19
+ python test.py file1 file2 file3
20
20
  ```
21
21
  で実行できるようにしたいです。
22
22
  この部分を import sysを使って変えればできそうなのですが。。

1

補足

2022/01/21 02:29

投稿

tiroha
tiroha

スコア109

test CHANGED
@@ -1 +1 @@
1
- ファイルを引数にするプログラムに修正したい
1
+ ファイルを引数にするプログラムに修正したい
test CHANGED
File without changes