1、题目:

包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。

示例 1:

输入:
[[1,1,1],[1,0,1],[1,1,1]]
输出:
[[0, 0, 0],[0, 0, 0],[0, 0, 0]]
解释:
对于点 (0,0), (0,2), (2,0), (2,2): 平均(3/4) = 平均(0.75) = 0
对于点 (0,1), (1,0), (1,2), (2,1): 平均(5/6) = 平均(0.83333333) = 0
对于点 (1,1): 平均(8/9) = 平均(0.88888889) = 0

注意:

  1. 给定矩阵中的整数范围为 [0, 255]。
  2. 矩阵的长和宽的范围均为 [1, 150]。

2、思路:

重点在采用额外的空间来去掉重复部分。

3、代码:

    def imageSmoother(self, M):""":type M: List[List[int]]:rtype: List[List[int]]"""#使用空间r , c = len(M),len(M[0])res = [[0 for i in range(c)] for j in range(r)]for i in range(r):for j in range(c):neighbor = [M[i-1][j-1] if i-1 >= 0 and j-1 >= 0 else -1,M[i-1][j] if i-1 >= 0 else -1,M[i-1][j+1] if i-1 >=0 and j+1 < c else -1,M[i][j+1] if j+1 < c else -1,M[i][j-1] if j-1 >= 0 else -1,M[i+1][j] if i+1 < r else -1,M[i+1][j-1] if i+1 < r and j-1 >= 0 else -1,M[i+1][j+1] if i+1 < r and j+1 < c else -1]count = neighbor.count(-1)res[i][j] = int((sum(neighbor) + count + M[i][j]) /(9 - count))return res

转载于:https://www.cnblogs.com/Lee-yl/p/9639313.html

算法32---图片平滑器相关推荐

  1. LeetCode简单题之图片平滑器

    题目 包含整数的二维矩阵 M 表示一个图片的灰度.你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽 ...

  2. D23 LeetCode 661.图片平滑器(简单)

    一.题目 二.思路(自己) 题目给出的过滤器是3*3的,但是对于图像的大小,我们是不能确定的.只需要考虑边缘的特殊情况,其余则是统一处理. 如果我所有的同一考虑:价格判断条件(该元素上一行和下一行是否 ...

  3. C#LeetCode刷题之#661-图片平滑器( Image Smoother)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3730 访问. 包含整数的二维矩阵 M 表示一个图片的灰度.你需要 ...

  4. 扩展、统计线性化和无迹RTS平滑器

    扩展.统计线性化和无迹RTS平滑器 扩展RTS平滑器(ERTSS) 扩展RTS平滑器 统计线性化RTS平滑器(SLRTSS) SLTRSS 无迹RTS平滑器(URTSS) 叠加型URTSS: 非叠加型 ...

  5. iVX案例制作(1)—图片查看器

    (一)功能: 图片以缩略图形式存放,可以点击将图片放大. 滚动鼠标实现图片放大与缩小. 点击左右箭头查看上下图片. 点击浮层可关闭图片. (二)效果演示 预览地址:图片查看器 (三)步骤: 1.点击对 ...

  6. (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)

    前言: 以前看了些关于图片优化处理缓存比较全的视频(感谢慕风网),现在回顾觉得还是挺好的也就总结出来下,感觉针对图片做处理这块还真的用的比较多,本文章只要使用异步线程AsyncTask.自定义的Ima ...

  7. 图片播放器的实现1——利用Image2LCD提取图片数据并显示

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考内容 (1)https://xiefor100.blog.csdn.net/article/details/71941527 (2) ...

  8. [分享]牛牛图片查看器[仿QQ图片查看器]及大致原理说明

    这是一个完全通过Duilib来实现的一个图片查看器,仿照QQ图片查看器的效果实现,希望大家喜欢. 先看一下使用的截图吧: 做相关说明如下: 一:使用说明 1. 通过命令行调用,传递图片路径即可打开图片 ...

  9. JavaSwing图片绘制,实现简单的图片查看器

    刚学到JavaSwing图片绘制,于是自己做了个简易的图片查看器小程序,在这里分享给大家,请多多指教. 话不多说先上部分图: 绘制图片需要自定义一个控件,我们这里写一个继承自JPanel的类,重写pa ...

最新文章

  1. 给力2011-东莞市南洋计算机软件有限公司 携手10大厂商提供企业安全有效节省成本解决方案...
  2. kenrel volatile关键字
  3. python排课问题_排课问题分析
  4. 启动64位 IIS 32位应用程序的支持
  5. 达梦数据迁移工具的使用
  6. java types.varchar_java statement.registerOutParameter(5, java.sql.Types.VARCHAR)返回值长度限制...
  7. 《Spark大数据分析实战》——第2章Spark开发与环境配置
  8. 《算法导论》第三版第13章 红黑树 练习思考题 个人答案
  9. 8个微信小程序UI组件框架
  10. 创业公司操蛋的面试过程
  11. python查单词音标_有没有通过读音或音标就能查出英语单词的办法,比如发音查词软件?...
  12. Win10提示对电脑进行保护已阻止此应用无法打开
  13. 中国传统色的魅力|这8组中国风传统颜色你一定要收藏
  14. Theorem、Proposition、Lemma和Corollary等的解释与区别
  15. 结构体运算符与取余_c语言取余(c语言去整和取余)
  16. 利用Python实现四则运算
  17. 大数据实时处理半期总结报告
  18. JPEG图像压缩探索_DCT变换的应用
  19. 使用FreePBX和第三方线路对接
  20. 【名企招聘】4月29日19点,巨杉数据库-带着岗位来招人啦

热门文章

  1. 研华数据采集卡如何采集压力信号转化为数字信号_感知世界的模拟量信号
  2. npm 查看登陆账号_自定义npm 及问题整理
  3. android 焦点动画,在一个视图/imageview上获得焦点时,实现android缩放动画?_animation_开发99编程知识库...
  4. oracle取本月最后一天是星期几_在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间...
  5. @Controller
  6. 怎么在堆叠柱状图中体现百分比_微生物门类堆叠柱状图一文解决
  7. 系统与服务器断开了连接不上,win7系统电脑玩跑跑卡丁车出现与服务器断开连接的解决方法...
  8. linux时间老是跳快6分钟,Linux超省时小技巧,让你原来要十分钟解决的问题现在只用一秒钟...
  9. java 多列 统计_java – 如何计算多列(colspan)HTML表的宽度?
  10. mysql排序区分大小写吗_MySQL的order by时区分大小写