opencv图像灰度化-算法优化
之前的灰度图像进行处理的时候是浮点型运算,运算时间较长,现在可以对灰度图像进行算法优化,将浮点型运算转换成整型运算。提高运算速度。
方法一:
import cv2
import numpy as np
img1 = cv2.imread(r"C:\Users\lenovo\Desktop\python\python_vision\image.jpg",1)
imgInfo = img1.shape
height = imgInfo[0]
width = imgInfo[1]
# huidutuxiang suanfayouhua
# fudianxing>>>dingdian
dst = np.zeros((height,width,3),np.uint8)
for i in range(0,height):
for j in range(0,width):
(b,g,r) = img1[i,j]
b = int(b)
g = int(g)
r = int(r)
gray = (r*1+g*2+b*1)/4
dst[i,j] = np.uint8(gray)
cv2.imshow("dst",dst)
cv2.waitKey()
方法二:
整型运算之后,还可以左移右移的方式。
import cv2
import numpy as np
img1 = cv2.imread(r"C:\Users\lenovo\Desktop\python\python_vision\image.jpg",1)
imgInfo = img1.shape
height = imgInfo[0]
width = imgInfo[1]
# huidutuxiang suanfayouhua
# fudianxing>>>dingdian
dst = np.zeros((height,width,3),np.uint8)
for i in range(0,height):
for j in range(0,width):
(b,g,r) = img1[i,j]
b = int(b)
g = int(g)
r = int(r)
gray = (r*1+(g<<1)+b*1)>>2
dst[i,j] = np.uint8(gray)
cv2.imshow("dst",dst)
cv2.waitKey()