前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【每周一坑】生成九宫格图片

【每周一坑】生成九宫格图片

作者头像
Crossin先生
发布于 2018-07-24 09:36:27
发布于 2018-07-24 09:36:27
45400
代码可运行
举报
运行总次数:0
代码可运行

我们的每N周一坑栏目又来了。

之前我们有过和图像处理相关的题目:

  • 【每周一坑】用代码给图片配上文字
  • 【每周一坑】缩小图片尺寸

今天再来一个和图片有关的:图片切割

非常简单的功能,但在开发中很常见,很多网页/应用里缩略图都是对图片进行缩放+切割得到的。

增加一点点趣味性,我们的要求是:

把一张图片切成 3 x 3 九张小图

这样就可以把它们发在朋友圈重新组成一张大图了。

示例: 原图

效果

当然,原图是正方形效果最好。

附加题

  1. 对于不是正方形的原图,截取中间尽可能大的正方形区域,再分割成九张小图(需考虑长>宽和长<宽两种情况)
  2. 切图时将朋友圈小图之间的间隔考虑进去,使拼接出的大图看起来更连续

提示:仍然用之前提到过的 PIL 库,里面的 crop 方法即可实现(py3 安装包名为 pillow)。

参考代码将在下周给出,或看看其他同学在留言中提交的代码。

期待各位同学提交解答。

提交代码可以使用 paste.ubuntu.com

codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。


【解答】蜥蜴流感与贝叶斯定理

案例本身是一个典型的条件概率,用贝叶斯定理即可算出概率,概率统计的书籍和网上都可以搜到详细解释。

P = (0.01 * 0.9) / (0.01 * 0.9 + (1 - 0.01) * 0.09) = 0.0917

而我们的问题是要模拟这个场景。所以我们可以循环10万次,用 random 模块根据已知的概率来“产生”病例和阳性结果,并统计最终实际的阳性患病率。

给出一份参考代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import random
# 定义个体
class Man:
    flu = False #是否患病
    test = False #是否阳性
# 产生10万个体,随机患病和检测状况
all_people = []
for i in range(100000):
    m = Man()
    # 患病概率
    if random.random() < 0.01:
        m.flu = True
    # 真阳性概率
    if m.flu and random.random() < 0.9:
        m.test = True
    # 假阳性概率
    if not m.flu and random.random() < 0.09:
        m.test = True
    all_people.append(m)
# 统计个数
positive_people = [m for m in all_people if m.test]
print(len(positive_people))
positive_flu = [m for m in positive_people if m.flu]
print(len(positive_flu))
# 实际患病者在阳性者中的比例
print(len(positive_flu)/len(positive_people))

这里先模拟生成了10万份数据,然后统计结果。当然也可以边生成边统计,@Mr. wang、@铭记、@L、@杀哥 就是用的类似方法,有的写得比我还更简洁。

同时提交解答的还有 @Jzy、@灿夜、@冬日炎炎。感谢各位同学的参与,希望下次继续。

期待在下一期中看到你的代码!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【每周一坑】房贷计算器 |【解答】生成九宫格图片
因为是“刚需”,所以网上早有无数的版本。有人已经用过,有人以后可能会用。有没有想过,类似这种小工具,其实你自己也可以实现。
Crossin先生
2018/07/24
7560
【每周一坑】房贷计算器  |【解答】生成九宫格图片
教你如何用Python处理图片九宫格,炫酷朋友圈
在日常的生活中,大家偶尔会看到朋友圈发的照片由一张被切成九张的效果,有时由一张照片被切成九张照片所带来的视觉盛宴是不一样的!
CDA数据分析师
2019/07/02
1K0
教你如何用Python处理图片九宫格,炫酷朋友圈
【每周一坑】蜥蜴流感与贝叶斯定理
春季是流感的高发季节。不要觉得只是小小的“感冒”,严重起来甚至也会危及生命,而且还没有特效药。因此,身体不适请及时到医院检查。
Crossin先生
2018/07/24
9960
【每周一坑】蜥蜴流感与贝叶斯定理
Python切割图片成九宫格
这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享。 原图如下:
诸葛青云
2019/10/07
1.2K0
Python切割图片成九宫格
python制作九宫格切割工具
这篇文章介绍了一个使用Python编写的九宫格切割工具,通过该工具,用户可以将一张图片按照九宫格的方式进行切割,方便在朋友圈等场合展示。文章首先通过PIL库对输入的图片进行处理,将其填充为正方形,然后居中显示在白色背景上。接着,作者使用切割算法将图片分割成九个小块,每个小块代表九宫格中的一个位置。最后,将切割后的图片保存为PNG格式。
GeekLiHua
2025/01/21
780
python制作九宫格切割工具
小程序—九宫格心形拼图
感觉很有趣,就上网查了查怎么做,大部分的说法就是用美图秀秀的拼图功能来做, 在微信小程序中也有专门做心形拼图的小程序,我都试了试之后,感觉还可以更加简单一些,于是我就自己做了个小程序。
FEWY
2019/05/26
1.4K0
几十行代码 帮你发高逼格朋友圈(九宫格图片的制作)
相信大家看了代码就知道是怎么实现的了吧,代码中可能比较难理解的地方我也给出了相应的注释,大家赶快用代码去跑一跑。
KEVINGUO_CN
2020/03/17
1.2K0
【说站】python九宫格图片的原理
1、用Python制作的九宫格图像生成器包装exe文件,用户无需部署安装Python的开发环境,即可在当地运行该程序,快速生成九宫格图像。
很酷的站长
2022/11/24
3190
【说站】python九宫格图片的原理
【带你成为pyq最靓的仔】朋友圈九宫格(一)之图片切割篇
记得那时我刚从健身房出来,当我在公交车站台等车的时候,无聊刷起了朋友圈,看到朋友圈里有好友在发九宫格的动态,就觉得好洋气呀,于是我就萌生了一个罪恶的想法,能不能借助Python帮我自动处理一下图片呢,毕竟我手残,搞不了这么精细的活,对吧,于是就诞生了这篇分享文章;
石璞东
2020/09/17
1.4K0
【每周一坑】神奇的九宫格
五一小长假大家应该玩的挺开心吧,还沉浸在假日的愉悦中么?请大家收收心,准备准备月底的端午节。 看看本周的题目吧,本周的题目由读者 @疯琴 提供,我们做了小小的改进,题目为数字填充 9 宫格。 给定一个 3 * 3 的九宫格和 1 - 9 九个数字,将 9 个数字按照一定的规则填充进九宫格内,使九宫格内横、竖、斜每条线的和都相等,输出至少一种结果。 示例: def Jiugongge(): ''' >>>Jiugongge() 4 9 2 3 5 7 8 1 6
Crossin先生
2018/04/17
6790
Android自定义实现九宫格抽奖功能
最近的功能需求中需要实现用户使用签到获取的积分,可以在九宫格中进行抽奖消耗积分,这里使用的是自定义进行实现抽奖的功能,可以通过设置计算策略,来控制用户 中哪些奖以及中大奖 的概率,话不多说,直接上代码。
SoullessCoder
2019/08/07
2.1K0
Android自定义实现九宫格抽奖功能
【每周一坑】用代码给图片配上文字
我们的『每日一坑』栏目里都是一些练手的小题目,难度不高,适合新手用来熟悉编程。如果想要更复杂的大项目,可以上我们的实验室栏目 lab.crossincode.com 上查看,或者论坛 bbs.cros
Crossin先生
2018/04/17
6880
【每周一坑】用代码给图片配上文字
【每周一坑】双色球选号器
说到做到,每周一坑 没有跳票,今天又来了! 我反复说,学会语法只是编程的开始,不断地写代码才是提升技能的必经之路。所以这个栏目我们肯定是要做下去的,哪怕它的阅读量注定不会很高。┑( ̄Д  ̄)┍ 网上也
Crossin先生
2018/04/17
1.9K0
【每周一坑】双色球选号器
【每周一坑】图像的指纹:数字水印 + 【解答】鸡兔同笼
曾经有过这样的新闻:某公司的员工将内网论坛上的言论截屏发布到互联网上,引发了热议。于是公司通过截图定位到了员工的身份,将其开除。
Crossin先生
2018/09/30
1.2K0
【每周一坑】图像的指纹:数字水印 + 【解答】鸡兔同笼
写一个自适应九宫格图片栏
小刘同学负责企微内嵌 H5 开发,按照这个项目一贯的做法 UI 只出了移动端设计稿。今天的页面有个附件展示组件,不点击的时候大概就像微博图片那样直接九宫格展示。(点击再依据不同附件类型走各自的逻辑暂且不表)简单,对吧?小刘吭哧吭哧搞得差不多了,然后叫产品去开发环境瞅一眼。只见产品在 PC 企微客户端打开页面,横着一拉,小刘的组件就横向散开来了。一问小刘,原来长宽都是写的固定多少 rem。项目本身之前一直丢在企微移动端里展示,也就一直没考虑sizechange的情况。。。小刘改了好一会还没改好。
玖柒的小窝
2021/10/09
5900
纯血鸿蒙APP实战开发——图片九宫格封装案例
组件实现图片在不同个数情况下的布局效果(默认布局和自定义布局)。该场景多用于社交类应用。
小帅聊鸿蒙
2025/01/05
1150
纯血鸿蒙APP实战开发——图片九宫格封装案例
【每周一坑】三国演义中谁的存在感最强 +【解答】暴力计算圆周率
自然语言处理(NLP)是人工智能的一个重要领域。在对中文做自然语言处理的时候,一个很基础的操作就是分词:因为中文不像英语有现成的单词划分,需要将汉字序列切分成一个个单独的词,以便于后续的处理和分析。
Crossin先生
2018/12/10
4240
【每周一坑】三国演义中谁的存在感最强 +【解答】暴力计算圆周率
【每周一坑】自动翻译 | 【解答】单词本
第一期的目标,是实现控制台下的单词录入及保存功能。各位都有实现吗?在本文后半段,我们会来做具体分析。
Crossin先生
2018/12/28
9610
【每周一坑】自动翻译 | 【解答】单词本
【每周一坑】数路径
加入教室的新同学看这里 ☞ 给新同学:编程教室资源索引 另外一些书籍推荐 ☞ 几个以前发过、回复过很多次、比较有用的学习资源 代码方面的问题,欢迎大家在论坛上发帖讨论(有问必回):bbs.crossincode.com 最近有同学表示在找工作面试时遇到了在我们【每周一坑】栏目中做过的题目,于是轻松搞定。所以说嘛,功夫不负有心人,多写代码绝对是有好处滴 : 本周的问题和寻路有关: 现有一个 m × n (m,n 都小于 100)的网格,位于左上角的 A 要去寻找右下角的 B,A 只能向下或者向右行走,现在问题
Crossin先生
2018/04/17
5610
【每周一坑】数路径
【每周一坑】生成词云
来看本周的题目。 使用 wordcloud 生成词云图 在 Python 中有许多有趣的库可供学习, wordcloud 必须得算一个,本周我们的题目就是,学习 wordcloud 基本用法,然后生成
Crossin先生
2018/04/17
7380
【每周一坑】生成词云
相关推荐
【每周一坑】房贷计算器 |【解答】生成九宫格图片
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验