[转载] python+opencv图像处理:numpy数组操作
参考链接: Python中的numpy.pv
图片以矩阵的形式存在电脑里,需要用到数组操作来完成对图像的处理
常用的有两个API: zeros和ones
1 np.ones(size) 可以创建任意维度的数组,各个元素值均为1
2
3 np.zeros(size,dtype) 同上,但各个元素值为0.默认元素类型为浮点数
使用示例:
1 img = np.zeros([256, 256, 3], np.uint8)
2 #创建长宽为256的图片,三通道(BGR),像素大小为8位无符号整数
3 img[: , : , 0] = np.ones([256,256])*255
4 #设置图片的颜色B通道为255,也就是蓝色
5 cv.imshow("new image", img)
6
7 #单通道的灰度图像
8 img1 = np.ones([400, 400, 1], np.uint8)
9 img1 = img1 * 147
10 cv.imshow("new image", img1)
图片填充 image.fill(pixel)
转换维度 image.reshape(size)
使用示例:
1 m1 = np.ones([30, 30], np.uint8) #创建单通道的灰度图形
2 m1.fill(12)
3 print(m1)
4 cv.imshow("m1", m1)
5 #reshape注意size大小匹配 30*30=10*90
6 m2 = m1.reshape([10,90])
7 print(m2)
8 cv.imshow("m2", m2)
对pixel的简单操作:方法一:遍历; 方法二:API
1 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比循环遍历快不少。(python运行比较慢,API是C++写的)
计算函数运行时间:
1 t1 = cv.getTickCount()
2 access_pixels(src) #需要测试时间的函数
3 t2 = cv.getTickCount()
4 time = (t2-t1)/cv.getTickFrequency()
5 print("time : %s ms" %(time*1000))
转载于:https://www.cnblogs.com/lzying/p/11364647.html
[转载] python+opencv图像处理:numpy数组操作相关推荐
- Python+OpenCV图像处理之模糊操作
模糊操作是图像处理中最简单和常用的操作之一,该使用的操作之一原因就为了给图像预处理时减低噪声,基于数学的卷积操作 均值模糊,函数 cv2.blur(image,(5,5)),这是一个平滑图片的函数,它 ...
- Python数据分析(7)-numpy数组操作
本节主要介绍numpy中在数组上的一些常规操作,在数组级别上包括数组迭代,数组拼接.数组分割,在元素级别包括元素迭代.元素增加.元素删除等. 本节的内容比较重要,同时也比较基础,是养成良好的编程习惯的 ...
- Python+OpenCV图像处理(一篇全)
参考:1.网易云课堂 Python+OpenCV图像处理 - 网易云课堂 2.[在水一方xym的博客]业精于勤荒于嬉,行成于思毁于随 - CSDN博客 https://blog.csdn.net/za ...
- python+opencv图像处理之七:直方图均衡化
python+opencv图像处理之七:直方图均衡化 目录 python+opencv图像处理之七:直方图均衡化 一.直方图均衡化 二.直方图绘制 三.直方图均衡化 四.有限对比适应性直方图均衡化 一 ...
- Python OpenCV 图像处理之直方图的应用,取经之旅第 26 天
Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. Python OpenCV 基础知识铺垫 cv2.compareHist 函数 橡皮擦的小节 基础知识铺垫 上篇博客 Py ...
- python+opencv图像处理之边缘检测车道线识别
python+opencv图像处理之边缘检测车道线识别 1.自行安装python和opencv 2.导入我们要使用的相关库 import cv2 from matplotlib import pypl ...
- Python+Opencv图像处理新手入门教程(三):阈值与二值化
一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图 1.Intro 今天这节我们主要研究利用阈值处理图像.例如对于输入图像: 如何做一 ...
- Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图
一步一步来吧 上一节:Python+Opencv图像处理新手入门教程(一):介绍,安装与起步 1.什么是图像 对于计算机而言,图像的本质是一个由像素点构成的矩阵. 例如我们用肉眼很容易分辨一辆汽车的后 ...
- Python+OpenCV图像处理(五)——图像阈值和二值化
系列文章 Python+OpenCV图像处理(一)--OpenCV框架与图像插值算法 Python+OpenCV图像处理(二)--几何变换 Python+OpenCV图像处理(三)--彩色空间互换 P ...
最新文章
- mysql thread safe_Windows环境下完全手工配置Apache、MySQL和PHP(Thread Safe)
- 实验: VMware使用快照间接备份原始VMDK文件
- ORA-01436: 用户数据中的CONNECT BY 循环
- *62.分页和分段的区别
- logistic回归 如何_R_语言 logistic回归分析
- 趣挨踢 | 关于遗留代码的那些事儿
- 多数据源处理-苞米豆-dynamic
- iphone-common-codes-ccteam源代码 CCUINavigationBar.h
- 字节跳动算法工程师总结:java资料文件
- 活动报名 | 苏州工业园区领军人才项目申报宣讲对接会
- adb shell 直接修改Settigns中设置项
- LinkedList 真的是查找慢增删快?刷新你的认知!
- mysql5.5默认引擎,在MySQL5.5以上系统中,默认的存储引擎是( )。
- ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的旋转角度标刻2功能介绍及其操作设置...
- 基于多传感器数据融合的全自动泊车系统研究与应用(文献综述)
- 学习 第3章:专项练习之一
- RedisCluster如何高效率地批量插入数据
- 悍将余承东「调防」,华为云能翻盘吗?
- SmallJava V2.0 产品说明书(20210405)
- 【web前端】pc网页适配移动网页和css布局之间的矛与盾
热门文章
- 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(7)签到题5题
- NYOJ41 - 三个数从小到大排序
- centos7 docker安装_教你如何在 CentOS 7 下 yum 方式安装 Docker 环境
- 数据结构—快速排序及其实现思想分而治之DC(思维导图版)
- 排序算法之 归并排序
- Program Library HOWTO(1)
- XSS的盲打以及实验的演示
- Unity3D基础42:AnyState大法
- Educational Codeforces Round 50: F. Relatively Prime Powers(莫比乌斯函数)
- C++的STL标准库学习(vector)