python opencv(10)图像的加噪

来源:互联网 发布:易观智库 数据来源 编辑:程序博客网 时间:2024/05/15 09:09

为了检验实验图像识别的效果,需要对加了噪声的图像进行识别。机器学习算法不能只是对清晰的图片有较好识别效果,对于不清晰的图像也应该较好地识别。
在图像的随机位置处把像素点的值设为某个值,如(25,20,20),如果像素点已经是灰度化了的,把值设为255,当像素点的数量较多时,便得到了有噪声的图像,如下面的程序设置了100000个点。

import cv2import numpy as npfn = "baboon.jpg"if __name__ == '__main__':    print 'load %s ...' % fn    img = cv2.imread(fn)    coutn = 100000    for k in xrange(0,coutn):        #get the random point        xi = int(np.random.uniform(0,img.shape[1]))        xj = int(np.random.uniform(0,img.shape[0]))        #add noise        if img.ndim == 2:            img[xj,xi] = 255        elif img.ndim == 3:            img[xj,xi,0] = 25            img[xj,xi,1] = 20            img[xj,xi,2] = 20    cv2.namedWindow('img')    cv2.imshow('img',img)    cv2.waitKey()    cv2.destroyAllWindows()

1 0