回答編集履歴
2
    
        answer	
    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
    
        answer	
    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 | 
             
            これは、画像のピントが合っているかどうか探るアルゴリズムで使われるものです。
         | 
