短书视频怎么下载?一招搞定视频音频下载教程


在这里插入图片描述
在前面我们了解到opencv中的图像实际上就是一个ndarray数组,我们对ndarray数组进行操作就是对图像进行操作。我们先来看一下切片查找,这是我们非常常用的一个操作。

(1)一维数组的切片
我们来看看切片的语法,对于一维的数组我们可以通过下面的操作获取第0个到第4个元素:

array[0:5]
从上面可以知道我们的切片操作是左闭右开的。上面的切片操作我们可以简写一下:

array[:5]
如果我们没有设置第一个值,则表示从头开始切片。当然我们还可以省略第二个值,这时含义就是取到最后一个元素,比如下面的操作:

array[3:]
我们用一个实际的例子来看看切片操作:

import numpy as np

创建一个一维的ndarray数组,数据为[0, 1, 2, 3, 4, 5, 6, 7]

array = np.array([0, 1, 2, 3, 4, 5, 6, 7])

取0到4个元素

print(array[0:5])
print(array[:5])

取第3个到最后一个元素

print(array[3:])
输出内容如下:

[0 1 2 3 4]
[0 1 2 3 4]
[3 4 5 6 7]`

我们可以把切片操作总结为:

左闭右开

array[start: end-1]
当我们以第0个开始,获取以最后一个结尾的话,对应的值是可以省略的。

(2)二维数组的切片
在图像处理中,我们更关注二维数组的切片。它的语法和一维数组很相似。为了方便理解,我们直接使用图片来进行切片,比如下面这张图片:

null

二维数组切片的语法如下:

array[start:end-1, start:end-1]

现在我们需要明确一点,左边部分是对高的截取,右边部分是对宽的截取。那现在我要截取图片的左半部分的操作应该如下:

import cv2

读取图片

img = cv2.imread('xyql.jpg')

获取图片的宽,并除2

width = img.shape[1]//2

对图片进行切片,截取左半部分

left = img[:, :width]

显示图像三步骤

cv2.imshow('left', left)
cv2.waitKey(0)
cv2.destroyAllWindows()

其中切片的代码是:

left = img[:, :width]

左边的是截取高,我们需要全部截取,因此两个值都可以省略。右边我们只需要截取左半部分,因此左边的值可以省略,右边的值则是我们前面计算到的宽度。下面是效果图:
在这里插入图片描述

(2)np.zeros
np.zeros和ones没有上面区别,只是它元素的内容是0。我们来简单看一下:

import numpy as np
img = np.zeros((5, 5), dtype=np.uint8)
print(img)

为了方便看,我们直接生成一个简单的数组,输出结果如下:

[[0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]]

其它的都不再细说了。

猜你喜欢

转载自blog.csdn.net/qq_45984336/article/details/110825114