栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

OpenCv中Numpy常用函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCv中Numpy常用函数

目录

创建ndarray对象

ndarray对象的切片和索引

​​​​​​​ 生成随机数、随机矩阵


创建ndarray对象
  1. np.array()可以接受一切序列型的对象,并且可以指定对象中的元素的数据类型,若不指定则自动为创建的数组推断一个适合的数据类型。
  2. np.zeros()可以创建一个全为0的矩阵
  3. np.ones()可以创建一个全为1的矩阵 

示例代码:

import numpy as np


a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]], dtype=np.float32)

b = np.ones((3, 3), dtype=np.uint8)

c = np.zeros((3, 3), dtype=np.uint16)

print("{}n{}n{}n".format(a, b, c))

ndarray对象的切片和索引

切片与索引可以对图像的像素或者某一通道进行操作。如:

import cv2 as cv
import matplotlib.pyplot as plt
import sys

# 裁剪图像
image = cv.imread('/墩墩儿.jpeg')
# 检测是否读取成功
if image is None:
    print('Failed to read')
    sys.exit()

# 查看要裁剪区域具体坐标
plt.imshow(image)
plt.show()
# [y1:y2, x1:x2]
img_dun_dun = image[660:841, 230:436]

cv.imshow('dundun', img_dun_dun)
cv.waitKey(0)
cv.destroyAllWindows()

结果如下:

 

 可见左图显示出来的图像与原图像不同,这是由于OpenCv导入的图像是BGR形式,而matplotlib中读取的是RGB形式。

此处可以进行切片索引的另一种用法,分离颜色通道并重新组合

# 分离图像颜色通道
b = image[:, :, 0]
g = image[:, :, 1]
r = image[:, :, 2]
# 合并颜色通道
image_RGB = cv.merge([r, g, b])

这样得到的图像就可以显示出原本的样子了

 生成随机数、随机矩阵
import cv2 as cv
import numpy as np


# 生成随机数组,可以通过随机数形成噪点
# array = np.random.randint(min, max, (shape), dtype)
array_1 = np.random.randint(0, 255, (521, 521, 3), dtype=np.uint8)
# 生成正态分布随机数组
# array = np.random.normal(loc, scale, (shape))
array_2 = np.random.normal(0, 1, (3, 3))
print(array_1)
print('=======')
print(array_2)
# 噪点展示
cv.imshow('噪点', array_1)
cv.waitKey(0)
cv.destroyAllWindows()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767462.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号