numpy
文章平均质量分 67
breaksoftware
这个作者很懒,什么都没留下…
展开
-
使用numpy处理图片——滚动图片
滚动图片是指:图片尺寸不变的情况下,把图片内容做某个方向的移动。这样就会出现一种情况:被移走的区域显示为空白,或者被超出尺寸的区域填充。numpy的滚动数组的方法能够做到下图效果,即空白区域用超出尺寸的元素填充。下面代码中(100,300,0)和(0,1,2)表示0轴方向(向下)移动100个元素,1轴方向(向右)移动300个元素,2轴方向不变。原创 2024-01-16 20:20:16 · 385 阅读 · 0 评论 -
使用numpy处理图片——二值图像
在《一文中,我们将彩色图片转换成灰阶图片。本文将在这个基础上将灰阶图片转换成二值图像。二值图像就是只有黑白两种颜色的图像。像素最终显示黑还是白,需要有一个判断标准。如果图片太白了,或者太黑了,会让图片丢失很多信息。于是我们需要找到一个平衡。原创 2024-01-14 00:29:25 · 681 阅读 · 0 评论 -
使用numpy处理图片——灰阶影像
灰阶(Gray scale)影像是每个像素只有一个采样颜色的图像。原创 2024-01-14 00:02:58 · 427 阅读 · 0 评论 -
使用numpy处理图片——分离通道
在中,我们剥离了RGB中的一个颜色,达到一种滤镜的效果。如果我们只保留一种元素,就可以做到PS中分离通道的效果。原创 2024-01-13 21:52:46 · 518 阅读 · 4 评论 -
使用numpy处理图片——缩放图片
缩放图片是让图片丢失部分像素,从而导致图片失真。一种比较简单的方法就是抽取法。比如如果我们要将照片在宽度上缩小50%,则可以在第二维度上每隔2个像素取一个像素来保存;类似的,如果我们希望在高度上缩小50%,则可以在第一维度上每隔2个像素取一个像素保存。以compressX = data[:,::2]为例。第一个“:”表示对所有第一维度(高度)上的数组都遍历到,“::2”是指对第二个维度上每隔2个像素取一个。宽度缩放(第二维度)高度缩放(第一维度)原创 2024-01-13 00:21:24 · 558 阅读 · 0 评论 -
使用numpy处理图片——90度旋转
在一文中,我们介绍了如何将图片旋转的方法。本文将使用更简单的方法旋转图片90度。原创 2024-01-12 00:10:50 · 589 阅读 · 1 评论 -
使用numpy处理图片——图片拼接
在一文中,我们介绍了如何使用numpy将一张图片切割成4部分。本文我们将反其道而行之,将4张图片拼接成1张图片。基本的思路就是先用两张图以左右结构拼接成上部,另外两张图也以左右拼接成为下部。然后上下两部再拼接。当然也可以先上下拼接成左部和右部,然后再左右拼接。原创 2024-01-12 00:10:14 · 642 阅读 · 0 评论 -
使用numpy处理图片——图片切割
在和中,我们认识到对三维数组使用dsplit方法按第3维度(深度)方向切分的方法。本文我们将介绍如何进行第一和第二维度切分,来达到图片切割的效果。原创 2024-01-11 10:38:01 · 483 阅读 · 0 评论 -
使用numpy处理图片——模糊处理
在一文中,我们尝试了去掉一原色来产生滤镜效果。本文将使用更复杂的算法,来做图像模糊处理。基本思路还是和前文类似:先切分出各个原色的数组,然后对每个数组用算法进行重新计算,最后把它们堆叠到一起。区别在于,我们需要把各个原色的数组从3维变成2维。对2维数组进行计算,然后把3个2维数组堆叠出一个3维数组。data就是原始图片的3维数组。colorDim3List是一个数组,每个元素是一个3维数组。比如colorDim3List[0]就是红色(R)值构成的3维数组。原创 2024-01-11 09:41:26 · 1270 阅读 · 0 评论 -
使用numpy处理图片——滤镜
我们在用手机拍照片时,往往会对照片进行滤镜处理,从而让照片更加美观。本文我们将实现几种滤镜效果——去除所有像素中的某一种原色,形成只有红绿、红蓝和绿蓝原色的照片。为了突出色彩丰富性,我们借用梵高的《星空》为测试照片。在《一文中,我们介绍了RGBA色彩空间模型。本文我们将忽略Alpha通道,只考虑RGB模型。于是我们得到的数组将是height * width * 3,其中的3是RGB的值所在的维度长度。我们希望把上图中不同原色的数组进行切分,然后通过不用原色的组合获得新图片。原创 2024-01-10 19:42:08 · 595 阅读 · 0 评论 -
使用numpy处理图片——白色背景变全透明
第三个维度就是RGBA的信息:坐标0表示红色(R),坐标1表示绿色(G),坐标2表示蓝色(B),坐标3表示Alpha值。如果RGB的值都是255,则说明其是白色,那就直接修改其alpha的值为0,以让这个像素点全透明。在进行修改操作时,nditer迭代器并不会马上修改原来的数据,而是将修改后的值放在一个缓冲区数组中。如果是纯白底色,则将该像素的alpha值调整到0,以达到全透明的程度,否则不做调整。我们看到生成的图片比之前粗暴的将所有像素的alpha改成32的图上的字要清楚。原创 2024-01-10 15:32:40 · 404 阅读 · 0 评论 -
使用numpy处理图片——镜像翻转和旋转
在一文中,我们介绍了如何使用numpy修改图片的透明度。本文我们将介绍镜像翻转和旋转。原创 2024-01-09 23:30:32 · 1062 阅读 · 0 评论 -
使用numpy处理图片——基础操作
numpy是一款非常优秀的处理多维数组的Python基础包。在现实中,我们最经常接触的多维数组相关的场景就是图像处理。本系列将通过若干篇对图像处理相关的探讨,来介绍numpy的使用方法,以获得直观的体验。本系列使用的照片使用的是RGBA色彩空间模型,即一个像素点,要通过R(Red红色)、G(Green绿色)、B(Blue蓝色)和A(Alpha通道)组成。前三种三原色比较好理解,即一个颜色可以通过红绿蓝三种颜色组成;原创 2024-01-09 18:21:56 · 684 阅读 · 0 评论