回答編集履歴

2

 

2023/05/27 06:24

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,7 @@
1
1
  2023-05-27 追記
2
2
 
3
- |画像|数値||
3
+ |画像|数値(複雑なほど大きい)|
4
- |:--|:--:|--:|
4
+ |:--|:--:|
5
5
  |マルマイン|3616|
6
6
  |マルマイン(腕を落書き)|5653|
7
7
  |ムゲンダイナ|7090|

1

 

2023/05/27 02:16

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,66 @@
1
+ 2023-05-27 追記
2
+
3
+ |画像|数値||
4
+ |:--|:--:|--:|
5
+ |マルマイン|3616|
6
+ |マルマイン(腕を落書き)|5653|
7
+ |ムゲンダイナ|7090|
8
+
9
+
10
+
11
+
12
+ ```Python3
13
+ import os
14
+ import cv2
15
+ import numpy as np
16
+
17
+ def img_loader():
18
+ path = os.path.split(os.path.abspath(__file__))[0] + "/"
19
+ img_ma = cv2.imread(path + "ma.png")
20
+ img_mu = cv2.imread(path + "mu.png")
21
+ return img_ma,img_mu
22
+
23
+ def DoG(img):
24
+ blur_3 = cv2.GaussianBlur(img, (3,3), 0)
25
+ blur_5 = cv2.GaussianBlur(img, (5,5), 0)
26
+ return blur_5 - blur_3
27
+
28
+ if __name__ == "__main__":
29
+ img_ma, img_mu = img_loader()
30
+
31
+ if (img_ma is None) or (img_mu is None) :
32
+ print("パスが間違っているかイメージが破損していてファイルがロードできませんでした。")
33
+ print("マルマイン:",img_ma )
34
+ print("ムゲンダイナ:",img_mu)
35
+ else:
36
+ # Laplacianできるようにグレースケールにする
37
+ img_ma_gray = cv2.cvtColor(img_ma,cv2.COLOR_BGR2GRAY)
38
+ img_mu_gray = cv2.cvtColor(img_mu,cv2.COLOR_BGR2GRAY)
39
+
40
+ # 線だけ抽出する
41
+ img_ma_gray = DoG(img_ma_gray)
42
+ img_mu_gray = DoG(img_mu_gray)
43
+
44
+ # 穴埋め
45
+ img_ma_gray = cv2.GaussianBlur(img_ma_gray, (5,5), 0)
46
+ img_mu_gray = cv2.GaussianBlur(img_mu_gray, (5,5), 0)
47
+
48
+ # 淡い灰色までは白判定にしてしまう
49
+ _,img_ma_gray = cv2.threshold(img_ma_gray, 150, 255, cv2.THRESH_BINARY)
50
+ _,img_mu_gray = cv2.threshold(img_mu_gray, 150, 255, cv2.THRESH_BINARY)
51
+
52
+ # Laplacianの分散を見る
53
+ var_ma = cv2.Laplacian(img_ma_gray , cv2.CV_64F).var()
54
+ var_mu = cv2.Laplacian(img_mu_gray , cv2.CV_64F).var()
55
+
56
+ # 表示部分
57
+ cv2.imshow("img_ma_gray " + str(var_ma),img_ma_gray )
58
+ cv2.imshow("img_mu_gray " + str(var_mu),img_mu_gray )
59
+ cv2.waitKey(0)
60
+ ```
61
+
62
+
63
+
1
64
  > ポケモンの画像の複雑さを数値化したいと思っています。
2
65
  cv2.Laplacian()をして、その後に.var()とすると、画像のエッジがどれくらい立っているかが見えます。
3
66
  これは、画像のピントが合っているかどうか探るアルゴリズムで使われるものです。