質問編集履歴
2
printでの出力結果を記載。また画像表示時のファイル名バグについて追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,9 +46,22 @@
|
|
46
46
|
##### 上記の詳細・結果
|
47
47
|
printで画像を表示させました。すべて同時に表示されないが、2個ずつ(グレースケールと二値化の画像)は表示される状態です。
|
48
48
|
→訂正です。printは誤記です。imshowで画像を表示させたところ、画像は表示されました。おそらく、画像の読み込みはできています。保存ができません。
|
49
|
+
画像は表示されていましたが、デスクトップ/二値化後の画像のところがバグって変な言葉のファイル名になっていました。
|
50
|
+
|
49
51
|
jupyter notebookでコードを実行しています。
|
50
52
|
|
51
53
|
また回答通りに.jpgを追加しましたが、指定したフォルダに画像は保存されていませんでした。
|
54
|
+
printのところを見逃していました。
|
55
|
+
printで出した結果は下記です。(処理画像を3つ入れているので6つのファイル名が出ています。
|
56
|
+
C:/Users/PC_User/デスクトップ/二値化後の画像/C:\Users\PC_User\デスクトップ\GAZOU\20181025.000234.jpg_0
|
57
|
+
C:/Users/PC_User/デスクトップ/二値化後の画像/C:\Users\PC_User\デスクトップ\GAZOU\20181025.000234.jpg_1
|
58
|
+
C:/Users/PC_User/デスクトップ/二値化後の画像/C:\Users\PC_User\デスクトップ\GAZOU\R.jpg_0
|
59
|
+
C:/Users/PC_User/デスクトップ/二値化後の画像/C:\Users\PC_User\デスクトップ\GAZOU\R.jpg_1
|
60
|
+
C:/Users/PC_User/デスクトップ/二値化後の画像/C:\Users\PC_User\デスクトップ\GAZOU\test.jpg_0
|
61
|
+
C:/Users/PC_User/デスクトップ/二値化後の画像/C:\Users\PC_User\デスクトップ\GAZOU\test.jpg_1
|
62
|
+
|
63
|
+
下記からが修正したコードです。
|
64
|
+
また画像を
|
52
65
|
|
53
66
|
import pathlib
|
54
67
|
import cv2
|
@@ -57,7 +70,7 @@
|
|
57
70
|
|
58
71
|
input_dir = "C:/Users/PC_User/デスクトップ/GAZOU"
|
59
72
|
input_list = list(pathlib.Path(input_dir).glob('**/*.jpg'))
|
60
|
-
File_Path= "C:/Users/PC_User/デスクトップ/二値化後の画像"
|
73
|
+
File_Path= "C:/Users/PC_User/デスクトップ/二値化後の画像/"
|
61
74
|
|
62
75
|
for i in range(len(input_list)):
|
63
76
|
img_file_name = str(input_list[i])
|
@@ -73,15 +86,18 @@
|
|
73
86
|
#黒部分の画素数
|
74
87
|
black_area=whole_area-white_area
|
75
88
|
|
76
|
-
|
89
|
+
#画像の保存
|
90
|
+
print(File_Path+img_file_name+"_0")
|
77
|
-
cv2.imwrite(File_Path+
|
91
|
+
cv2.imwrite(File_Path+img_file_name+"_0",img_gray)
|
92
|
+
print(File_Path+img_file_name+"_1")
|
78
|
-
cv2.imwrite(File_Path+
|
93
|
+
cv2.imwrite(File_Path+img_file_name+"_1",img_th)
|
79
94
|
|
80
95
|
#画像の表示
|
81
96
|
cv2.imshow(img_file_name+"_0.jpg",img_gray)
|
82
97
|
cv2.imshow(img_file_name+"_1.jpg",img_th)
|
83
98
|
cv2.waitKey(0)
|
84
99
|
cv2.destroyAllWindows()
|
100
|
+
|
85
101
|
|
86
102
|
### 補足
|
87
103
|
初心者で元日から始めたばかりで、コードの意味など深くは理解していないです。
|
1
誤記の修正、回答通りに修正して実行した結果を記載。
test
CHANGED
File without changes
|
test
CHANGED
@@ -45,6 +45,43 @@
|
|
45
45
|
|
46
46
|
##### 上記の詳細・結果
|
47
47
|
printで画像を表示させました。すべて同時に表示されないが、2個ずつ(グレースケールと二値化の画像)は表示される状態です。
|
48
|
+
→訂正です。printは誤記です。imshowで画像を表示させたところ、画像は表示されました。おそらく、画像の読み込みはできています。保存ができません。
|
49
|
+
jupyter notebookでコードを実行しています。
|
50
|
+
|
51
|
+
また回答通りに.jpgを追加しましたが、指定したフォルダに画像は保存されていませんでした。
|
52
|
+
|
53
|
+
import pathlib
|
54
|
+
import cv2
|
55
|
+
import numpy as np
|
56
|
+
import os
|
57
|
+
|
58
|
+
input_dir = "C:/Users/PC_User/デスクトップ/GAZOU"
|
59
|
+
input_list = list(pathlib.Path(input_dir).glob('**/*.jpg'))
|
60
|
+
File_Path= "C:/Users/PC_User/デスクトップ/二値化後の画像"
|
61
|
+
|
62
|
+
for i in range(len(input_list)):
|
63
|
+
img_file_name = str(input_list[i])
|
64
|
+
img_np = np.fromfile(img_file_name, dtype=np.uint8)
|
65
|
+
img = cv2.imdecode(img_np, cv2.IMREAD_COLOR)
|
66
|
+
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
67
|
+
#特定の範囲のGaussian分布から閾値を自動で決めて二値化
|
68
|
+
ret,img_th=cv2.threshold(img_gray,0,255,cv2.THRESH_OTSU)
|
69
|
+
#全体の画素数
|
70
|
+
whole_area=img_th.size
|
71
|
+
#白部分の画素数
|
72
|
+
white_area=cv2.countNonZero(img_th)
|
73
|
+
#黒部分の画素数
|
74
|
+
black_area=whole_area-white_area
|
75
|
+
|
76
|
+
#画像の保存
|
77
|
+
cv2.imwrite(File_Path+os.path.splitext(os.path.basename(img_file_name))[0]+"_0"+".jpg",img_gray)
|
78
|
+
cv2.imwrite(File_Path+os.path.splitext(os.path.basename(img_file_name))[0]+"_1"+".jpg",img_th)
|
79
|
+
|
80
|
+
#画像の表示
|
81
|
+
cv2.imshow(img_file_name+"_0.jpg",img_gray)
|
82
|
+
cv2.imshow(img_file_name+"_1.jpg",img_th)
|
83
|
+
cv2.waitKey(0)
|
84
|
+
cv2.destroyAllWindows()
|
48
85
|
|
49
86
|
### 補足
|
50
87
|
初心者で元日から始めたばかりで、コードの意味など深くは理解していないです。
|