2017-05-12 8 views
0

は私がcv2.THRESH_BINARYと機能との私のイメージを構築しPythonでバイナリイメージを作成するには?

RET、im_thresh = cv2.threshold(gray_image、40、255、 cv2.THRESH_BINARY)

しかし白でなければなりません1私のプログラムで働く。

は私が作った助けるために:

height = int(np.size(im_thresh, 0)) 
width = int(np.size(im_thresh, 1)) 

for x in range(height): 
    for y in range(width): 
     if im_thresh[x,y]==255: 
      im_thresh[x,y] = 1 

私の質問

はpythonで速くこれを行うにはどのような方法がありますか?

答えて

1

ブールインデックスを使用して配列の値を取得および設定すると、入れ子にされたforループは回避されます。

import numpy as np 
from numpy import random 

# Generating an image of values between 1 and 255. 
im_thresh = random.randint(1,256, (64,64)) 

# Set anything less than 255 to 0. Unnecessary if cv2 does this during threshold. 
# Must go before the operation below in order not to set all values to 0. 
im_thresh[im_thresh<255] = 0 

# Set all values at indices where the array equals 255 to 1. 
im_thresh[im_thresh==255] = 1 
関連する問題