【问题标题】:How to make a binary image with python?如何用python制作二进制图像?
【发布时间】:2017-10-12 05:55:28
【问题描述】:

我用 cv2.THRESH_BINARY 和函数构建了我的图像

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 中更快地做到这一点?

【问题讨论】:

    标签: python image binary rgb


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 2018-03-18
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 2020-04-13
      相关资源
      最近更新 更多