質問編集履歴
8
捕捉
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -6,7 +6,8 @@ | |
| 6 6 | 
             
            いろいろと苦労してプログラムは動くようになったのですが、
         | 
| 7 7 | 
             
            計算速度が遅いです。早くする方法があればご教示ください。
         | 
| 8 8 | 
             
            なお、上の画像は閾値20000の場合です。
         | 
| 9 | 
            -
             | 
| 9 | 
            +
            なお、Kirisakiさんの結果はこちらでした。
         | 
| 10 | 
            +
            
         | 
| 10 11 | 
             
            ### 該当のソースコード
         | 
| 11 12 |  | 
| 12 13 | 
             
             import cv2, math
         | 
7
修正
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -5,6 +5,7 @@ | |
| 5 5 | 
             
            典型的な色として黒以外の画素の最頻値を使っています。
         | 
| 6 6 | 
             
            いろいろと苦労してプログラムは動くようになったのですが、
         | 
| 7 7 | 
             
            計算速度が遅いです。早くする方法があればご教示ください。
         | 
| 8 | 
            +
            なお、上の画像は閾値20000の場合です。
         | 
| 8 9 |  | 
| 9 10 | 
             
            ### 該当のソースコード
         | 
| 10 11 |  | 
6
修正
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            
         | 
| 2 | 
            -
            
         | 
| 2 | 
            +
            
         | 
| 3 3 | 
             
            Python初心者です。
         | 
| 4 4 | 
             
            画像で黒以外の似たような背景色を全部黒にするプログラムを作っています。
         | 
| 5 5 | 
             
            典型的な色として黒以外の画素の最頻値を使っています。
         | 
| @@ -29,7 +29,7 @@ | |
| 29 29 |  | 
| 30 30 | 
             
                     mb=((int(mode_b)-b[i,j])**2)
         | 
| 31 31 |  | 
| 32 | 
            -
                     if(mr+mg+mb <  | 
| 32 | 
            +
                     if(mr+mg+mb < 20000.):
         | 
| 33 33 | 
             
                         bgr[i,j]=[0,0,0]
         | 
| 34 34 | 
             
                         cv2.imwrite("B.jpg",bgr)
         | 
| 35 35 |  | 
5
画像追加
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
            -
            ### 前提・実現したいこと
         | 
| 1 | 
            +
            ### 前提・実現したいこと
         | 
| 2 | 
            -
             | 
| 2 | 
            +
            
         | 
| 3 3 | 
             
            Python初心者です。
         | 
| 4 4 | 
             
            画像で黒以外の似たような背景色を全部黒にするプログラムを作っています。
         | 
| 5 5 | 
             
            典型的な色として黒以外の画素の最頻値を使っています。
         | 
4
修正
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -15,7 +15,9 @@ | |
| 15 15 | 
             
             imax=bgr.shape[0]
         | 
| 16 16 | 
             
             jmax=bgr.shape[1]
         | 
| 17 17 |  | 
| 18 | 
            +
             | 
| 18 19 | 
             
             rgb = bgr[:, :, [2, 1, 0]]
         | 
| 20 | 
            +
             r,g,b=cv2.split(rgb)
         | 
| 19 21 | 
             
             mode_r=sstats.mode(r[r.nonzero()])[0][0]
         | 
| 20 22 | 
             
             mode_g=sstats.mode(g[g.nonzero()])[0][0]
         | 
| 21 23 | 
             
             mode_b=sstats.mode(b[b.nonzero()])[0][0]
         | 
3
数式が変な表示になっていたため
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -34,5 +34,5 @@ | |
| 34 34 | 
             
            ### 試したこと
         | 
| 35 35 |  | 
| 36 36 | 
             
            for文とif文を使わずに
         | 
| 37 | 
            -
            bgr[mr**2+mg**2+mb**2<100.]=[0,0,0]
         | 
| 37 | 
            +
            bgr[mr**2 + mg**2 + mb**2 < 100.]=[0,0,0]
         | 
| 38 38 | 
             
            を試したら早く計算が終わったのですが、意図した結果になりませんでした。
         | 
2
コードの改行
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -22,8 +22,11 @@ | |
| 22 22 | 
             
             for i in range(imax):
         | 
| 23 23 | 
             
                 for j in range(jmax):
         | 
| 24 24 | 
             
                     mr=((int(mode_r)-r[i,j])**2)
         | 
| 25 | 
            +
             | 
| 25 26 | 
             
                     mg=((int(mode_g)-g[i,j])**2)
         | 
| 27 | 
            +
             | 
| 26 28 | 
             
                     mb=((int(mode_b)-b[i,j])**2)
         | 
| 29 | 
            +
             | 
| 27 30 | 
             
                     if(mr+mg+mb < 100.):
         | 
| 28 31 | 
             
                         bgr[i,j]=[0,0,0]
         | 
| 29 32 | 
             
                         cv2.imwrite("B.jpg",bgr)
         | 
1
てにをは
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -30,6 +30,6 @@ | |
| 30 30 |  | 
| 31 31 | 
             
            ### 試したこと
         | 
| 32 32 |  | 
| 33 | 
            -
            for文 | 
| 33 | 
            +
            for文とif文を使わずに
         | 
| 34 34 | 
             
            bgr[mr**2+mg**2+mb**2<100.]=[0,0,0]
         | 
| 35 35 | 
             
            を試したら早く計算が終わったのですが、意図した結果になりませんでした。
         | 
