実現したいこと
複数の画像の各セルの標準偏差画像を出したいの関連質問です。
該当のソースコードは、画像ファイルが3つのときです。画像ファイルが100個あり、そのファイル名が規則的ではないときはどのようにすれば良いでしょうか。
私の何となくイメージですが、ディレクトリを作ってその中にファイルを入れ、そのディレクトリの中のファイルの標準偏差を取れば良いのではないかと考えました。
画像は3×3のモノクロ画像で、各画素値は以下の通りです。
input1.jpg
1 2 3
4 5 6
7 8 9
input22.jpg
10 11 12
13 14 15
16 17 18
input3-3.jpg
9 8 7
6 5 4
3 2 1
標準偏差の値の正解
4.027681991 3.741657387 3.681787006
3.858612301 4.242640687 4.784233365
5.436502143 6.164414003 6.944222219
該当のソースコード
python
1import cv2 2import numpy as np 3 4img1 = cv2.imread('input1.jpg') 5img2 = cv2.imread('input22.jpg') 6img3 = cv2.imread('input3-3.jpg') 7 8std = np.std(np.dstack([img1, img2, img3]), axis=-1) 9print(std) 10print('') 11 12cv2.imwrite('output.png',std)
試したこと
こちらを参考にして、
まずtempというディレクトリを作り、その中にもinput1.jpg、input22.jpg、input3-3.jpgをコピーし
python
1import cv2 2import numpy as np 3import os 4 5img1 = cv2.imread('input1.jpg') 6img2 = cv2.imread('input22.jpg') 7img3 = cv2.imread('input3-3.jpg') 8 9std = np.std(np.dstack([img1, img2, img3]), axis=-1) 10print(std) 11print('') 12 13cv2.imwrite('result.png',std) 14 15############################## 16dir_path = ".\temp" 17 18files_file = [ 19 f for f in os.listdir(dir_path) if os.path.isfile(os.path.join(dir_path, f)) 20] 21print(files_file)
としてみたところ、
Traceback (most recent call last):
File "・・・\testCV269.py", line 19, in <module>
f for f in os.listdir(dir_path) if os.path.isfile(os.path.join(dir_path, f))
^^^^^^^^^^^^^^^^^^^^
OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。: '.\temp'
と出力されました。
回答2件
あなたの回答
tips
プレビュー