为啥能够使用代码处理照片

在程序员的眼中图片也就只是一堆数据而已,只要改变了不同的数据,照片所呈现出来的效果也不同。然而numpy这个库刚好能够让我们任意的揉捏这些数据,从而处理照片

1.如何使用numpy裁剪图片

导入我们所需要的库

import numpy as np
import matplotlib.pyplot as plt
#jupyter 魔法指令,预加载,显示图片
%matplotlib inline
#读取图片
img = plt.imread('./flower.jpg')#这里输入需要导入图片的位置
img#显示图片的数据
lt.imshow(img)#显示图片
img.shape#查看图片的长宽及颜色
img2 = img[60:290,30:450]#根据图片的长宽所截取自己需要的部分
img2#打印截取后的结果

运行后结果对比:

2. 对荷花进行“染色”

#引用了上面的部分代码
img3 = img[:,:,::-1]#对照片的数据进行切片操作,::-1是对红绿蓝三种颜色进行了不同的搭配。
img4 = img[:,:,[0,2,1]
plt.imshow(img3)
plt.imgshow(img4)

img3的显示结果:

img4的显示结果:

3.对图片进行马赛克处理

import numpy as np
import matplotlib as plt
%matplotlib inline
img = plt.imread('./di.jpg')
plt.imshow(img)#打印照片
img.shape#显示照片参数
head = img[0:230,200:380]#截取需要打马赛克的部分
head2 = head[::5,::5]#打马赛克的过程其实就是将照片的数值的间距调大
img2 = img.copy()#将img的参数复制给img2
#由于打马赛克的图片与需要打码的地方大小不一样,无法将有马赛克的直接粘贴在所需的地方,所以需要进行循环
for i in range(46):for j in range(36):img2[5*i:5+i*5,200+j*5:205+j*5] = head2[i:j]
plt.imshow(img2)

导入的原图:

进行打码的部分:

最后的结果:

4. 总结

一张图片是由长宽以及颜色三个参数构成。我们可以通过调整不同的长宽来对图片进行裁图,也可以通过这种方式进行打马赛克;而颜色是由三原色(0:红,1:绿,2:蓝)进行排列的方式来进行调色。

学numpy,玩转图片相关推荐

  1. numpy数组和图片互转

    一.numpy array的存储和加载: load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中. save ...

  2. 小学计算机课在玩中学,学中玩,玩中学的作文(共5篇)

    宋丽娜想必大家都明白学生产生对学习的厌恶是什么造成的,是上课的枯燥乏味,老师的苛刻古板造成的心理厌学症.为什么美国孩子和中国孩子不同?的确,中国的孩子成绩比美国的孩子好,但是没过孩子的课外知识远远比中 ...

  3. 【画学numpy】1.numpy数组初识

    本文是画学numpy系列文章之一 ⭐️github:drawing_and_studying_numpy包含了可以运行的notebook文件以及本文绘制的所有插图. 也可以选择在百度的AI studi ...

  4. +1学姐玩跳棋 (SG函数)

    +1学姐玩跳棋 Description 拥有复读机buff的+1学姐一路顺利,现在已经来到了最后一个关卡--跳棋大作战,该关卡有三个BOSS,分别是Gevjon,Tyr和Hoder. 战斗规则是,在1 ...

  5. 小学计算机课在玩中学,小鹿编程“玩中学、学中玩”趣味课程让孩子爱上学习...

    原标题:小鹿编程"玩中学.学中玩"趣味课程让孩子爱上学习 孩子们都是天真无邪的小天使,他们喜欢什么不喜欢什么都会直观的表达出来,作为家长有时候真的很"无奈",我 ...

  6. 计算机考试字处理怎样加水印,一学即会!图片上如何添加文字水印

    原标题:一学即会!图片上如何添加文字水印 平时工作中,有的小伙伴经常需要处理一大堆的图片,比如说在网上发表自己的文章,在购物网站上晒单,还是自己亲手拍的照片,自己制作的图片,或者画出来一个好的创意,想 ...

  7. 【时尚线人】驳样记:学陈蓉玩撞色_陈蓉吧_百度贴吧

    [时尚线人]驳样记:学陈蓉玩撞色_陈蓉吧_百度贴吧 [时尚线人]驳样记:学陈蓉玩撞色_陈蓉吧_百度贴吧 [时尚线人]驳样记:学陈蓉玩撞色 只看楼主 收藏 回复 lizchr 铁杆会员 8   还记得我 ...

  8. 从小喜欢游戏对计算机兴趣,电脑游戏“学与玩”

    玩,是孩子们成长过程中主要的生活内容.游戏就是孩子们的亲密伙伴,孩子在玩的过程中会仔细的观察,正确的操作,不断地发现问题,提出问题他们极力想知道其中的道理,就会向老师提出各种各样的问题.这就是我们教育 ...

  9. python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

最新文章

  1. Android canvas.translate
  2. BZOJ3110: [Zjoi2013]K大数查询
  3. C++职工信息管理系统
  4. 在VMware中的Ubuntu虚拟机安装open-vm-tools调整屏幕可以复制粘贴
  5. 无需U盘在Windows下安装Linux系统实现双系统(非子系统)
  6. 分享Netsparker - Community Edition运用程序。
  7. BT.709 vs BT.2020
  8. Opencv 傅立叶变换 傅立叶逆变换
  9. gitlab 添加了 ssh keys, git clone git@xxx:xx.git 无法拉取的解决思路及办法
  10. GitHub 中超过3.5万开源代码被投毒
  11. 软考真题———2018上
  12. Docker从入门到放弃------docker的安装与初始化配置
  13. C语言中取余与取模的区别
  14. 更换一个已到使用寿命的墨盒--Epson
  15. 计算机没有检查到您的u盾,Win10检测不到U盾怎么办?
  16. 以 2、3……16 进制输出一无符号整型数
  17. folly库安装(2)openssl升级、python3.8安装
  18. 【C语言】scanf语句里关于%c的问题
  19. 23-25-35岁北漂者的未来该如何规划?~转
  20. 虚拟机安装系统的网络配置问题(Contos7版)

热门文章

  1. 和Remix比,求锤得锤
  2. UnityShader——MaterialCapture材质捕捉效果 (翡翠斧头)
  3. 文件共享服务器(CIFS)
  4. autorunner测试java,AutoRunner自动化测试工具
  5. 炫酷的可视化工具:processing 初识
  6. 糯米团—重制“iPhone团购信息客户端”(三)
  7. dcl并列控件 lisp_CAD autolisp jjj-dcl-make函数
  8. Scipy优化scipy.optimize.minimize
  9. MacOS Brew搭建PHP开发环境
  10. Spyder 打不开的一种解决办法