如何用 python 制作二值图像?
How to make a binary image with python?
我用 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 中更快地做到这一点?
尝试使用布尔索引来获取和设置数组的值,从而避免嵌套的 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
我用 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 中更快地做到这一点?
尝试使用布尔索引来获取和设置数组的值,从而避免嵌套的 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