python 图像降噪

12人阅读 评论(0) 收藏 举报


#coding:utf-8  
import sys,os  
from PIL import Image,ImageDraw  
  
#二值判断,如果确认是噪声,用改点的上面一个点的灰度进行替换  
#该函数也可以改成RGB判断的,具体看需求如何  
def getPixel(image,x,y,G,N):  
    L = image.getpixel((x,y))  
    if L > G:  
        L = True  
    else:  
        L = False  
  
    nearDots = 0  
    if L == (image.getpixel((x - 1,y - 1)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x - 1,y)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x - 1,y + 1)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x,y - 1)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x,y + 1)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x + 1,y - 1)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x + 1,y)) > G):  
        nearDots += 1  
    if L == (image.getpixel((x + 1,y + 1)) > G):  
        nearDots += 1  
  
    if nearDots < N:  
        return image.getpixel((x,y-1))  
    else:  
        return None  
  
# 降噪   
# 根据一个点A的RGB值,与周围的8个点的RBG值比较,设定一个值N(0 <N <8),当A的RGB值与周围8个点的RGB相等数小于N时,此点为噪点   
# G: Integer 图像二值化阀值   
# N: Integer 降噪率 0 <N <8   
# Z: Integer 降噪次数   
# 输出   
#  0:降噪成功   
#  1:降噪失败   
def clearNoise(image,G,N,Z):  
    draw = ImageDraw.Draw(image)  
  
    for i in xrange(0,Z):  
        for x in xrange(1,image.size[0] - 1):  
            for y in xrange(1,image.size[1] - 1):  
                color = getPixel(image,x,y,G,N)  
                if color != None:  
                    draw.point((x,y),color)  
  
#测试代码  
def main():  
    #打开图片  
    image = Image.open("d:/1.jpg")  
  
    #将图片转换成灰度图片  
    image = image.convert("L")  
  
    #去噪,G = 50,N = 4,Z = 4  
    clearNoise(image,50,4,4)  
  
    #保存图片  
    image.save("d:/result.jpg")  
  
  
if __name__ == '__main__':  
    main()  

查看评论

简单高效的图片降噪方法

图片,降噪,算法,高效,叠加
  • dbyoung
  • dbyoung
  • 2017-01-15 11:30:45
  • 2345

奇异值分解(SVD)实现简单的图像降噪处理

奇异值(Singular Value)往往对应着矩阵中的隐含的重要信息,且重要性与奇异值大小呈正相关。 关于奇异值的知识,可以参考:机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用 ...
  • Khan__Liu
  • Khan__Liu
  • 2017-01-17 10:54:40
  • 3047

Opencv图像处理之滤波降噪

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,...
  • xiaolongrenstep
  • xiaolongrenstep
  • 2017-11-29 15:41:33
  • 623

小波的秘密8_图像处理应用:图像降噪

1.前言: 图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性法法进行,最常用到的就是维纳滤波,但是他的降噪效果并不是很明显。小波分析法开辟了非线性降噪的先河,小波能够降噪得益于小波...
  • shenziheng1
  • shenziheng1
  • 2016-11-07 10:56:25
  • 1447

完整的图片去噪代码(python)

#coding:utf-8 import sys,os from PIL import Image,ImageDraw #二值判断,如果确认是噪声,用改点的上面一个点的灰度进行替换 #该函数也可以改...
  • xinghun_4
  • xinghun_4
  • 2015-08-22 21:57:12
  • 12490

图像平均及其在降噪方面的应用

图像平均及其在降噪方面的应用 图像平均以及图像平均在应对椒盐/高斯/相机噪声方面的对比分析 概述: 图像平均操作是减少图像噪声的一种简单方式。 我们可以简单地从图像列表中计算出一幅平均图像...
  • sunmc1204953974
  • sunmc1204953974
  • 2016-02-03 11:02:34
  • 5049

针对降噪的带噪图像

针对降噪的带噪图像相加(平均)  令是无噪声图像被加性噪声污染后的图像,即: 这里假设在每一对坐标(x,y)处,噪声是不相关的,并且均值为0.如果噪声满足上述的约束,那么可以证明,如果图像是通过对...
  • m0_37407756
  • m0_37407756
  • 2017-10-23 21:10:33
  • 407

python数字图像处理-图像噪声与去噪算法

python数字图像处理-图像噪声与去噪算法图像噪声椒盐噪声概述: 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出...
  • u012123989
  • u012123989
  • 2017-12-16 17:36:21
  • 1790

opencv 图像降噪函数

cv::fastNlMeansDenoising
  • u012968002
  • u012968002
  • 2015-01-22 15:40:27
  • 2375

图像降噪的一些总结

图像降噪,是最简单也是最基础的图像处理逆问题(inverse problem)。大多数情况下,图像降噪都是ill-posed的问题。因为通过有噪音的观察,总是无法逆向求得唯一正确的干净图片。就好像让你...
  • qq_26499769
  • qq_26499769
  • 2018-01-05 16:14:16
  • 967
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 88万+
    积分: 2万+
    排名: 340
    博客专栏
    最新评论