質問編集履歴

2

誤字

2022/11/22 07:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,15 +8,7 @@
8
8
  ### 発生している問題・エラーメッセージ
9
9
  ---------------------------------------------------------------------------
10
10
  以下のようなエラーが出ています。
11
- AttributeError Traceback (most recent call last)
12
- ~\AppData\Local\Temp\ipykernel_30076\3233061824.py in <module>
13
- 3 from matplotlib import pyplot as plt
14
- 4 img = cv2.imread('pic-20221101T004942Z.png')
15
- ----> 5 h, w, _ = img.shape
16
- 6
17
- 7 # 全画素の色リストを作成
18
-
19
- AttributeError: 'NoneType' object has no attribute 'shape'
11
+ NameError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_30076\3627228303.py in <module> 16 17 # 出現回数(ピクセル数)をカウントする ---> 18 counter = collections.Counter(color_list) 19 20 # ピクセル数と色をpandasデータフレーム化 NameError: name 'collections' is not defined
20
12
 
21
13
  ### 該当のソースコード
22
14
  以下のコードを作成しました。

1

インシデントの追加

2022/11/22 07:29

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -20,15 +20,17 @@
20
20
 
21
21
  ### 該当のソースコード
22
22
  以下のコードを作成しました。
23
+
24
+ ```python
23
25
  import numpy as np
24
26
  import cv2
25
27
  from matplotlib import pyplot as plt
26
28
  img = cv2.imread('pic-20221101T004942Z.png')
27
29
  h, w, _ = img.shape
28
30
 
29
- 全画素の色リストを作成
31
+ 全画素の色リストを作成
30
- 色情報は B*1000000 + G*1000 + R に変換し
32
+ 色情報は B*1000000 + G*1000 + R に変換し
31
- 0埋めした9桁の文字列に 
33
+ 0埋めした9桁の文字列に 
32
34
  color_list = []
33
35
  for y in range(h):
34
36
  for x in range(w):
@@ -36,23 +38,23 @@
36
38
  img[y, x, 1]*1000 +
37
39
  img[y, x, 2]).zfill(9))
38
40
 
39
- 出現回数(ピクセル数)をカウントする
41
+ 出現回数(ピクセル数)をカウントする
40
42
  counter = collections.Counter(color_list)
41
43
 
42
- ピクセル数と色をpandasデータフレーム化
44
+ ピクセル数と色をpandasデータフレーム化
43
45
  df = pd.DataFrame(data=[list(counter.values()), list(counter.keys())],
44
46
  index = ['pixels', 'BGR']).T
45
47
 
46
- ピクセル数が全体の1%未満の行を削除(ノイズとみなす)
48
+ ピクセル数が全体の1%未満の行を削除(ノイズとみなす)
47
49
  df2 = df[df['pixels'] > h*w*0.01]
48
50
 
49
- 降順に並べ替え
51
+ 降順に並べ替え
50
52
  df3 = df2.sort_values(by=['pixels'], ascending=False)
51
53
 
52
- ndarrayに変換し一行ずつ読み出しリストに追加
54
+ ndarrayに変換し一行ずつ読み出しリストに追加
53
- 色情報は9桁の文字列なので3文字ずつ読み出し
55
+ 色情報は9桁の文字列なので3文字ずつ読み出し
54
- 255で割って0~1の数字に変換
56
+ 255で割って0~1の数字に変換
55
- 順番をBGR→RGBに変更
57
+ 順番をBGR→RGBに変更
56
58
  x_list =[]
57
59
  rgb_list =[]
58
60
  for i in df3.to_numpy():
@@ -61,7 +63,7 @@
61
63
  int(i[1][3:6])/255,
62
64
  int(i[1][0:3])/255])
63
65
 
64
- 円グラフの作成
66
+ 円グラフの作成
65
67
  plt.pie(x_list,
66
68
  colors=rgb_list,
67
69
  wedgeprops={'linewidth': 1, 'edgecolor':'black'},
@@ -69,6 +71,7 @@
69
71
  startangle=90)
70
72
  plt.show()
71
73
 
74
+ ```
72
75
 
73
76
  ### 参考にしたサンプルコード
74
77
  https://tat-pytone.hatenablog.com/entry/2022/04/25/203755