python-OpenCV之numpy数组操作
1.图片的表示与存储
图片以矩阵的形式存在电脑里,需要用到数组操作来完成对图像的处理。
np.ones(size) #可以创建任意维度的数组,各个元素值均为1
2
3 np.zeros(size,dtype) #同上,但各个元素值为0.默认元素类型为浮点数
使用示例:
img = np.zeros([256, 256, 3], np.uint8)#创建长宽为256的图片,三通道(BGR),像素大小为8位无符号整数img[: , : , 0] = np.ones([256,256])*255#设置图片的颜色B通道为255,也就是蓝色cv.imshow("new image", img)#单通道的灰度图像img1 = np.ones([400, 400, 1], np.uint8)img1 = img1 * 147cv.imshow("new image", img1)
示例:
m1 = np.ones([30, 30], np.uint8) #创建单通道的灰度图形
m1.fill(12)
print(m1)
cv.imshow("m1", m1)
#reshape注意size大小匹配 30*30=10*90
m2 = m1.reshape([10,90])
print(m2)
cv.imshow("m2", m2)
2.对像素pixel的操作
主要有两种形式:遍历和API的方式。
def access_pixels(image):2 print(image.shape)3 height = image.shape[0]4 width = image.shape[1]5 channels = image.shape[2]6 print("width : %s, height : %s, channels : %s" %(width, height, channels))7 for i in range(height):8 for j in range(width):9 for k in range(channels):
10 pv = 255 - image[i, j, k]
11 image[i, j, k] = pv
12 cv.imshow("pixels_demo", image)
13
14
15 def inverse(image):
16 #和上一个函数的for循环功能类似
17 dst = cv.bitwise_not(image)
18 cv.imshow("inverse demo", dst)
这时,你会发现使用API比循环遍历快不少。
3.计算函数运行时间
t1 = cv.getTickCount()
2 access_pixels(src) #需要测试时间的函数
3 t2 = cv.getTickCount()
4 time = (t2-t1)/cv.getTickFrequency()
5 print("time : %s ms" %(time*1000))
python-OpenCV之numpy数组操作相关推荐
- Python数据分析(7)-numpy数组操作
本节主要介绍numpy中在数组上的一些常规操作,在数组级别上包括数组迭代,数组拼接.数组分割,在元素级别包括元素迭代.元素增加.元素删除等. 本节的内容比较重要,同时也比较基础,是养成良好的编程习惯的 ...
- Python学习笔记——Numpy数组的移动滑窗,使用as_strided实现
Python学习笔记--Numpy数组的移动滑窗,使用as_strided实现 `Numpy`中移动滑窗的实现 为何需要移动滑窗 `Numpy`中的移动滑窗 移动滑窗的`as_strided`实现方法 ...
- c语言随机生成整数存放一维数组_文科生学 Python 系列 7: Numpy 数组/索引和切片...
第四课:本课内容: • 0. 导入 NumPy 包 • 1. 创建 NumPy 数组 • 2. 索引和切片 • 3. 读取文件 • 4. 布尔型索引 • 5. 数组的运算 • 6. 常用函数举例 Nu ...
- python 如何理解 numpy 数组操作中的 axis 参数?
以前在看numpy数组操作的有关axis的操作时, 常常理解不了, 比如像下面这种: [代码1] 求沿指定轴上的最大值(2维): import numpy as np a = np.array([[7 ...
- [转载] python+opencv图像处理:numpy数组操作
参考链接: Python中的numpy.pv 图片以矩阵的形式存在电脑里,需要用到数组操作来完成对图像的处理 常用的有两个API: zeros和ones 1 np.ones(size) 可以创建任意维 ...
- python观察日志(part26)--numpy数组操作
学习笔记,仅供参考,有错必究 数组操作 # 垂直方向和并数组 arr1 = np.array([[1, 2, 3], [0, 0, 1]]) arr2 = np.array([[4, 5, 6], [ ...
- 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化
一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食 ...
- Python+OpenCV的基础图像处理操作汇总
本文我们将讨论使用Python中的OpenCV库进行图像处理的一些基本操作. 图像处理是对图像进行的技术操作与分析,比如为了得到增强的图像或提取一些有用的信息而进行的一系列操作. 随着我们的发展,许多 ...
- Numpy | Python列表与Numpy数组对比
在公众号[计算机视觉联盟]后台回复[Python]获取14张Python思维导图:我的微信:PursueWin: --by Sophia 中科院学霸 | 上市AI算法工程师 | CSDN博客专家 ...
最新文章
- 两大AI技术集于一身,有道词典笔3从0到1的飞跃
- R语言可视化包ggplot2改变图例(legend)标签实战
- 分享5个有趣的 JavaScript 代码片段
- golang beego orm报错 must have one register DataBase alias named `default` 解决方案
- 10备忘录没有表格_iPhone的【备忘录】竟然有这么多功能
- 如何使用SetTimer MFC 够详细
- 前端学习(2905):用vite的2.0构建程序
- Linux: I/O多路转接之epoll(有图有代码有真相!!!)
- 2016/11/07 线程的创建和启动
- Chocolatey 简介(软件自动化管理工具)
- Android之AbsoluteLayout(绝对布局)
- 【渝粤教育】国家开放大学2018年秋季 0300-22T图形创意 参考试题
- 开始Unity3D的学习之旅
- html5创新创业模板,大学生创新创业计划书模板完整版.doc
- 数据结构与算法—队列详解
- 东北女子参加同学聚会倒地猝死,无人参与急救
- 军用式计算机标准总线,计算机总线技术在军用航空地面检测设备中的应用分析.pdf...
- 计算机网络自顶向下方法,第7版—第1章习题
- CCNA中文笔记第11章Wide Area Networking Protocols
- [转帖]江湖经验:喝酒的学问技巧,社会新人一定要看~!