参考链接: 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数组操作相关推荐

  1. Python+OpenCV图像处理之模糊操作

    模糊操作是图像处理中最简单和常用的操作之一,该使用的操作之一原因就为了给图像预处理时减低噪声,基于数学的卷积操作 均值模糊,函数 cv2.blur(image,(5,5)),这是一个平滑图片的函数,它 ...

  2. Python数据分析(7)-numpy数组操作

    本节主要介绍numpy中在数组上的一些常规操作,在数组级别上包括数组迭代,数组拼接.数组分割,在元素级别包括元素迭代.元素增加.元素删除等. 本节的内容比较重要,同时也比较基础,是养成良好的编程习惯的 ...

  3. Python+OpenCV图像处理(一篇全)

    参考:1.网易云课堂 Python+OpenCV图像处理 - 网易云课堂 2.[在水一方xym的博客]业精于勤荒于嬉,行成于思毁于随 - CSDN博客 https://blog.csdn.net/za ...

  4. python+opencv图像处理之七:直方图均衡化

    python+opencv图像处理之七:直方图均衡化 目录 python+opencv图像处理之七:直方图均衡化 一.直方图均衡化 二.直方图绘制 三.直方图均衡化 四.有限对比适应性直方图均衡化 一 ...

  5. Python OpenCV 图像处理之直方图的应用,取经之旅第 26 天

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. Python OpenCV 基础知识铺垫 cv2.compareHist 函数 橡皮擦的小节 基础知识铺垫 上篇博客 Py ...

  6. python+opencv图像处理之边缘检测车道线识别

    python+opencv图像处理之边缘检测车道线识别 1.自行安装python和opencv 2.导入我们要使用的相关库 import cv2 from matplotlib import pypl ...

  7. Python+Opencv图像处理新手入门教程(三):阈值与二值化

    一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图 1.Intro 今天这节我们主要研究利用阈值处理图像.例如对于输入图像: 如何做一 ...

  8. Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图

    一步一步来吧 上一节:Python+Opencv图像处理新手入门教程(一):介绍,安装与起步 1.什么是图像 对于计算机而言,图像的本质是一个由像素点构成的矩阵. 例如我们用肉眼很容易分辨一辆汽车的后 ...

  9. Python+OpenCV图像处理(五)——图像阈值和二值化

    系列文章 Python+OpenCV图像处理(一)--OpenCV框架与图像插值算法 Python+OpenCV图像处理(二)--几何变换 Python+OpenCV图像处理(三)--彩色空间互换 P ...

最新文章

  1. mysql thread safe_Windows环境下完全手工配置Apache、MySQL和PHP(Thread Safe)
  2. 实验: VMware使用快照间接备份原始VMDK文件
  3. ORA-01436: 用户数据中的CONNECT BY 循环
  4. *62.分页和分段的区别
  5. logistic回归 如何_R_语言 logistic回归分析
  6. 趣挨踢 | 关于遗留代码的那些事儿
  7. 多数据源处理-苞米豆-dynamic
  8. iphone-common-codes-ccteam源代码 CCUINavigationBar.h
  9. 字节跳动算法工程师总结:java资料文件
  10. 活动报名 | 苏州工业园区领军人才项目申报宣讲对接会
  11. adb shell 直接修改Settigns中设置项
  12. LinkedList 真的是查找慢增删快?刷新你的认知!
  13. mysql5.5默认引擎,在MySQL5.5以上系统中,默认的存储引擎是( )。
  14. ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的旋转角度标刻2功能介绍及其操作设置...
  15. 基于多传感器数据融合的全自动泊车系统研究与应用(文献综述)
  16. 学习 第3章:专项练习之一
  17. RedisCluster如何高效率地批量插入数据
  18. 悍将余承东「调防」,华为云能翻盘吗?
  19. SmallJava V2.0 产品说明书(20210405)
  20. 【web前端】pc网页适配移动网页和css布局之间的矛与盾

热门文章

  1. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(7)签到题5题
  2. NYOJ41 - 三个数从小到大排序
  3. centos7 docker安装_教你如何在 CentOS 7 下 yum 方式安装 Docker 环境
  4. 数据结构—快速排序及其实现思想分而治之DC(思维导图版)
  5. 排序算法之 归并排序
  6. Program Library HOWTO(1)
  7. XSS的盲打以及实验的演示
  8. Unity3D基础42:AnyState大法
  9. Educational Codeforces Round 50: F. Relatively Prime Powers(莫比乌斯函数)
  10. C++的STL标准库学习(vector)