Python3与OpenCV3.3 图像处理(三)--Numpy数组操作
来源:互联网 发布:手机相片日期软件 编辑:程序博客网 时间:2024/06/01 16:42
一、本节简述
本节主要讲解Numpy数组操作的一些基础知识。
二、什么是Numpy
一个用python实现的科学计算包。包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran等所做的任务。
三、示例代码
import cv2 as cvimport numpy as npdef access_pixel(image): """访问图像所有的像素""" print(image.shape) #获取图像的高度,图像的高度为shape的第一个值(维度) height=image.shape[0] #获取图像的宽读,图像的宽度为shape的第二个值(维度) width=image.shape[1] #获取图像通道数目,图像的通道数目为shape的第三个值(维度) #加载进来的图像都有三个通道,三个通道是图像的RGB channels=image.shape[2] print("width: %s,height: %s channels: %s"%(width,height,channels)) #循环获取每个像素点,并且修改,然后存储修改后的像素点 for row in range(height): for col in range(width): for c in range(channels): pv=image[row,col,c] image[row,col,c]=255-pv #输出的是一个呈现负片效果的图片 cv.imshow("pixels_demo",image)def create_image(): """创建新图象""" #创建一张宽高都是400像素的3通道 8位图片 img=np.zeros([400,400,3],np.uint8) #修改通道值 img[:,:,0]=np.ones([400,400])*255 img[:, :, 2] = np.ones([400, 400]) * 255 cv.imshow("new image",img) #创建一个单通道的8位图片 img=np.zeros([400,400,1],np.uint8) img=img*127 cv.imshow("new image", img) cv.imwrite("127img.png",img) #numpy 数组维度的变换 #定义一个二维数组 img=np.ones([3,3],np.uint8) #填充每个元素 img.fill(1000.22) print(img) #变换为一维数组 img=img.reshape([1,9]) print(img)#读入图片文件src=cv.imread('textImg.jpg')#获取cpu当前时钟总数t1=cv.getTickCount()access_pixel(src)t2=cv.getTickCount()#计算处理像素花费的时间#cv.getTickFrequency() 每秒的时钟总数time=((t2-t1)/cv.getTickFrequency())print("time: %s s"%time)create_image()#等待用户操作cv.waitKey(0)#释放所有窗口cv.destroyAllWindows()
阅读全文
0 0
- Python3与OpenCV3.3 图像处理(三)--Numpy数组操作
- Python3与OpenCV3.3 图像处理(二)--图像基本操作
- Python3与OpenCV3.3 图像处理(五)--图像运算
- Python3与OpenCV3.3 图像处理(十六)--图像金字塔
- Python3与OpenCV3.3 图像处理(十七)--图像梯度
- Python3与OpenCV3.3 图像处理(四)--色彩空间
- Python3与OpenCV3.3 图像处理(六)--ROI
- Python3与OpenCV3.3 图像处理(七)--洪填充
- Python3与OpenCV3.3 图像处理(八)--模糊
- Python3与OpenCV3.3 图像处理(十九)--直线检测
- Python3与OpenCV3.3 图像处理(十一)--图像直方图
- Python3与OpenCV3.3 图像处理(十二)--图像直方图应用
- Python3与OpenCV3.3 图像处理(十五)--图像二值化
- Python3与OpenCV3.3 图像处理(十)--EPF
- Python3与OpenCV3.3 图像处理(十三)--反射投影
- Python3与OpenCV3.3 图像处理(十四)--模板匹配
- Python3与OpenCV3.3 图像处理(补)--第十五节补充
- Python3与OpenCV3.3 图像处理(一)--环境搭建与简单DEMO
- 样式初始化
- React学习笔记_远程加载数据
- 分布式系统Paxos算法
- qt移植输入法二
- JAVA SE — Day 11
- Python3与OpenCV3.3 图像处理(三)--Numpy数组操作
- java日常学习:集合(一)
- 01背包问题优化与java代码的详解(动态规划)
- PAT (Basic Level) Practise (中文)1065. 单身狗(25)
- paxos-分布式系统数据一致性算法学习
- 自己写的Spring4教程,给Java学习者参考!
- 深入浅出Signals综合分析
- Android Studio手动配置Gradle的方法
- pip install pysftp出现的错误