# 阈值
def thresholdImg(img, mode):
# mode:
# cv2.THRESH_BINARY 超过阈值取最大值,未超过取0
# cv2.THRESH_BINARY_INV 超过阈值取0,未超过取最大值
# cv2.THRESH_TRUNC 超过阈值取阈值,未超过不变
# cv2.THRESH_TOZERO 超过阈值不变,未超过取0
# cv2.THRESH_TOZERO_INV 超过阈值取0,未超过不变
img = changeGBRImgToGray(img)
ret, newImg = cv2.threshold(img, 127, 255, mode)
return newImg
# 给图片加噪声
def addImgNoise(img, level):
rows, cols, chn = img.shape
for i in range(level * 10000):
x = np.random.randint(0, rows)
y = np.random.randint(0, cols)
img[x, y, :] = 255
return img
# 添加滤波
global BLUR # 取平均数
global GAUSSIAN # 按照高斯分布加权计算平均数
global MEDIAN # 取中间数
BLUR = 0
GAUSSIAN = 1
MEDIAN = 2
# 添加滤波
def addFilter(img, square, mode):
if mode == 0:
return cv2.blur(img, (square, square))
if mode == 1:
return cv2.GaussianBlur(img, (square, square), 1)
if mode == 2:
return cv2.medianBlur(img, square)
# 在一个窗口中展示多张图像
def showRowsOfImgs(title, *imgs):
res = np.hstack(imgs)
showImg(title, res)