马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-2-18 09:25 编辑
上一讲我们学完了拆分数组,本讲来学习用 Numpy 来处理图片。
之前都是处理二维数组,本次基于三维数组来搞事情~
首先会用到 OpenCV,没有配置不会安装的请看:OpenCV 的基本操作
最简单就是在 Anaconda 环境中安装:
假设鱼油跟着小甲鱼老师安好了 OpenCV。
然后我们打开@鱼C-小师妹的 B 站(传送门),down 一张图:
图片包(自己去弄就不要下啦):
然后放到我们的 Numpy 目录中。
导入 Numpy 和 cv2:
然后导入咱们可爱的小师妹:
这样我们就将图片读成了 Numpy 数组。
既然是数组,就回到我们的教程中啦。
先来看看形状:
这是我们第一次见到三维数组,日常中图片其实是“三维”滴。
有 291 行,518 列,每个值又都有三个颜色 (B,G,R)。
全 (255,255,255) 就是白色,全 0 即黑色。
通过 OpenCV 的方法看下原图:
cv2.imshow('img',img)
cv2.waitKey(0)
输出:
弱弱的问下,大家觉得小师妹长得像谁?!
接下来我们创建一个图像副本来搞事情!
代码:
img2 = img.copy()
img2[:,:,2] = 0
[:,:,2] = 0 代表所有行,所有列,第三个维度(内涵 3 个值,索引 0,1,2)的索引为 2 的值为 0,即 R 为 0。
执行代码:
因为 R 为 0 ,只有 B 和 G,整体偏湖蓝。
当以后需要统一处理图片时,就可以结合 Numpy 来进行批量自动化快速处理。
下一讲我们继续使用 Numpy 来快速分离颜色通道。
源代码:
13ThreeImg.zip
(305 Bytes, 下载次数: 1, 售价: 5 鱼币)
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |