任务描述
背景

  图像在数字化和传输等过程中会产生噪声,从而影响图像的质量,而图像降噪技术可以有效地减少图像中的噪声。如下图所示,左图是一幅包含噪声的图像(图中的黑点即为噪声),右图是降噪后的结果(黑点显著减少)。


中值滤波是一种常用的图像降噪方法,对于一幅带噪声的图像 1(设分辨率为 w×h),降噪方法如下:
  1)将图像1转换成灰度图,仍称为图像1;
  2)新建图像2,图像2为灰度图,分辨率与图像1相同;
  3)对于图像 1 中坐标为 (x,y) 的像素 p,求 p 的中值 c,然后将图像 2 中 (x,y) 处的像素值设置成 c,其中,1≤x≤w−2、1≤y≤h−2;
  4)保存图像 2,图像 2 即存放了降噪后的结果。
其中,第 3 步要计算 (x,y) 处像素 p 的中值 c,计算方法如下:

1)选取以 p 为中心的 3×3 图像区域,如上图所示,每个小方格代表一个像素,数字表示像素的灰度值,像素 p 的坐标为 (x,y),则选取的图像区域为黄色底纹区域;
  2)对步骤 1 中选取的 9 个像素的颜色值进行升序排列,如上图所示例子排序后为:11、12、13、14、15、16、17、18、99;
  3)在步骤 2 得到的排序结果中,排在最中间一个值即为中值 c,如上图所示例子中像素 p 的中值为 15。

任务
  本关任务是补全程序,使其能进行图像降噪,说明如下:
  1)排序操作可利用列表中的sort函数进行;
  2)关于代码的相关说明见注释。

相关知识
  略。

编程要求
  在 Begin-End 区间补全代码,具体要求见上。

测试说明
  测试集正确结果如下:

(1  , 1 ) -> 255
(72 , 42) -> 191
(120, 45) -> 127
(164, 49) -> 89
(235, 49) -> 38

你的图像与正确答案相同!
  说明如下:
  1)系统会调用你编写的median函数,并以“像素坐标 -> 中值”的格式打印结果,如测试集第 1 行的(1 , 1 ) -> 255表示:(1,1) 处像素的中值为255;
  2)此外,系统会检查程序生成的图像文件,若正确则在测试集最后一行打印你的图像与正确答案相同!。

开始你的任务吧,祝你成功!

from PIL import Image# 求图像img中(x,y)处像素的中值c
def median(img, x, y):########## Begin ##########L = []xl = [x-1,x,x+1]yl = [y-1,y,y+1]for i in xl:for j in yl:gray = img.getpixel((i, j))  # 取出灰度值L.append(gray)L.sort()c = L[4]########## End ##########return c# 对图像文件1进行降噪,并将结果保存为图像文件2
# 图像文件1和2的路径分别为path1和path2
def denoise(path1, path2):img1 = Image.open(path1)  # 图像1img1 = img1.convert('L')  # 将图像1转换为灰度图w, h = img1.sizeimg2 = Image.new('L', (w, h), 'white')  # 图像2for x in range(1, w - 1):for y in range(1, h - 1):c = median(img1, x, y)  # 求中值img2.putpixel((x, y), c)  # 将灰度设置为中值img2.save(path2)path1 = 'step4.bmp'  # 带噪声的图像
path2 = 'step4_2.bmp'  # 降噪后的图像
denoise(path1, path2)

python图像降噪相关推荐

  1. python 图像降噪

    #coding:utf-8   import sys,os   from PIL import Image,ImageDraw      #二值判断,如果确认是噪声,用改点的上面一个点的灰度进行替换 ...

  2. 可复现的图像降噪算法总结——超赞整理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 图像降噪,是最简单也是最基础的图像处 ...

  3. 视觉进阶 | 用于图像降噪的卷积自编码器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:磐创AI 作者|Dataman 编译|Arno 来源|A ...

  4. 图像降噪算法——稀疏表达:K-SVD算法

    图像降噪算法--稀疏表达:K-SVD算法 图像降噪算法--稀疏表达:K-SVD算法 1. 基本原理 2. python代码 3. 结论 图像降噪算法--稀疏表达:K-SVD算法 为了完善下自己降噪算法 ...

  5. python音频 降噪_python降噪_python音频降噪_python图片降噪 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我们下面借助opencv的python封装包cv2,对其进行一些降噪处理,使得图 ...

  6. 用于图像降噪的卷积自编码器

    这篇文章的目的是介绍关于利用自动编码器实现图像降噪的内容. 在神经网络世界中,对图像数据进行建模需要特殊的方法.其中最著名的是卷积神经网络(CNN或ConvNet)或称为卷积自编码器.并非所有的读者都 ...

  7. day8 - 使用不同的滤波核进行图像降噪

    本期主要介绍用于图像平滑处理的滤波,分别是方框滤波.均值滤波.中值滤波.高斯滤波,比较不同滤波的效果:并了解自定义滤波器进行图像处理. 完成本期内容,你可以: 会使用方框滤波.均值滤波.中值滤波.高斯 ...

  8. python图像中如何显示中文

    python图像中如何显示中文 在开头加入这两行即可 from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei']

  9. LIVE 预告 | CVPR 2021 预讲 · 旷视专场,覆盖目标检测、蒸馏、图像降噪、人体姿态估计等...

    CVPR 2021 大会将于6月19日至 25日线上举行.为促进同行之间的交流与合作,智源社区近期举办了系列CVPR 2021预讲报告,其中实验室系列将汇聚国内顶尖高校和企业实验室的研究人员为大家分享 ...

最新文章

  1. 查看存储过程死锁的存储过程
  2. js跨域访问,No 'Access-Control-Allow-Origin' header is present on the requested resource
  3. strtok和sscanf
  4. 怎么把写好的python代码打包成exe-【Python之点到为止】如何优雅的将你的代码打包成EXE...
  5. YbtOJ#791-子集最值【三维偏序】
  6. vpn mysql_MYSQL数据库
  7. 百度之星作为座位调整java_百度之星2006年初赛 座位调整
  8. 干货 | 自然语言处理中注意力机制综述
  9. mysql 解压版安装及DATA初始化 root用户密码修改
  10. bypassuac提权
  11. 尚硅谷大数据课程flink1.13代码实现与笔记记录
  12. 华为USG6000V防火墙学习
  13. VUE项目开发的完整流程
  14. 安卓10刷Magisk并安装JustTrustMe
  15. Unity官方文档(英文)
  16. wx-微信公众号-静默登陆授权
  17. 一个数根号3怎样用计算机计算,根号3等于多少怎么算
  18. 本世纪惊心动魄的粮食战争,中国反败为胜:陈思进--20190701
  19. 如何检测本地网络环境,本地网络是否稳定
  20. 线性代数学习笔记——第三十九讲——直线与平面的位置关系

热门文章

  1. Pyton 类和对象
  2. 斐波那契数列+pyton
  3. 【GISer小O】JAVA后台的小白之路(一)_2 ——分分合合三剑客
  4. 『团队协作的五大障碍』读书所得
  5. 深度揭秘聚合支付的盈利模式
  6. 亲自操作,有用的win10遇到“已禁用输入法”无法启动中文输入法的问题-提示已禁用输入法解决方案
  7. 通达oa2015 php解密,通达OA /interface/auth.php SQL注入
  8. poj-1625 Censored![ac自动机+dp+高精度]
  9. ISLR 读书笔记二:评估模型的准确性
  10. UIAlertController Extention