减少 python 中图像的处理时间
Reducing processing time of images in python
我有一个 python 处理黑白图像的脚本。
我做的第一件事是不超过 170 毫秒的通常过程,即
img = img[200:900, 250:1100]
imag = image_resize(img, height=960, width=1280)
ImgBlur = cv2.GaussianBlur(imag, (11, 11), 0)
ret, thresh1 = cv2.threshold(ImgBlur, 100, 255, cv2.THRESH_BINARY)
imgCanny = cv2.Canny(thresh1, 100, 100)
在我需要找到图像中的白色部分并执行此功能后立即执行此功能
A = np.array(imgCanny)
xpos = []
ypos = []
for i in range(len(A)):
for j in range(len(A[i])):
if A[i][j] == 255:
ypos.append(i)
xpos.append(j)
我的问题是这个函数花费了 2.3 秒,大部分是处理时间的 98%。
有谁知道我怎样才能通过另一种选择来减少它?
我得到的imageCanny结果就是这种图片imgCanny
根据您的需要,Numpy.where 和 numpy.argwhere 的结果应该完全符合您的要求,如下所示:
np.argwhere(a==255)
将return所有坐标的数组
我有一个 python 处理黑白图像的脚本。 我做的第一件事是不超过 170 毫秒的通常过程,即
img = img[200:900, 250:1100]
imag = image_resize(img, height=960, width=1280)
ImgBlur = cv2.GaussianBlur(imag, (11, 11), 0)
ret, thresh1 = cv2.threshold(ImgBlur, 100, 255, cv2.THRESH_BINARY)
imgCanny = cv2.Canny(thresh1, 100, 100)
在我需要找到图像中的白色部分并执行此功能后立即执行此功能
A = np.array(imgCanny)
xpos = []
ypos = []
for i in range(len(A)):
for j in range(len(A[i])):
if A[i][j] == 255:
ypos.append(i)
xpos.append(j)
我的问题是这个函数花费了 2.3 秒,大部分是处理时间的 98%。 有谁知道我怎样才能通过另一种选择来减少它?
我得到的imageCanny结果就是这种图片imgCanny
根据您的需要,Numpy.where 和 numpy.argwhere 的结果应该完全符合您的要求,如下所示:
np.argwhere(a==255)
将return所有坐标的数组