NumPy提供了一些使用占位符创建数组的函数#split_img.py
2017-01-09 10:28
615 查看
数组类型可以在创建时显示指定
通常,数组的元素开始都是未知的,但是它的大小已知。因此,NumPy提供了一些使用占位符创建数组的函数。这最小化了扩展数组的需要和高昂的运算代价。
函数
为了创建一个数列,NumPy提供一个类似arange的函数返回数组而不是列表:
当
其它函数array, zeros, zeros_like, ones, ones_like, empty, empty_like, arange, linspace, rand, randn, fromfunction, fromfile参考:
NumPy示例
#####split_img.py
import cv2
import numpy as np
img=cv2.imread('messi5.jpg')
b,g,r=cv2.split(img)
cv2.namedWindow('imageb')
cv2.imshow('imageb',b)
cv2.namedWindow('imageg')
cv2.imshow('imageg',g)
cv2.namedWindow('imager')
cv2.imshow('imager',r)
cv2.waitKey(0)
b=img[:,:,0]
g=img[:,:,1]
r=img[:,:,2]
cv2.namedWindow('imageb')
cv2.imshow('imageb',b)
cv2.namedWindow('imageg')
cv2.imshow('imageg',g)
cv2.namedWindow('imager')
cv2.imshow('imager',r)
cv2.waitKey(0)
cv2.namedWindow('image')
cv2.imshow('image',img)
print "======================="
cv2.waitKey(0)
img2=np.zeros(img.shape, dtype=np.uint8)
img2[:,:,0]=b
img2[:,:,1]=g
img2[:,:,2]=r
cv2.namedWindow('image2')
cv2.imshow('image2',img2)
cv2.waitKey(0)
>>> c = array( [ [1,2], [3,4] ], dtype=complex ) >>> c array([[ 1.+0.j, 2.+0.j], [ 3.+0.j, 4.+0.j]])
通常,数组的元素开始都是未知的,但是它的大小已知。因此,NumPy提供了一些使用占位符创建数组的函数。这最小化了扩展数组的需要和高昂的运算代价。
函数
function创建一个全是0的数组,函数
ones创建一个全1的数组,函数
empty创建一个内容随机并且依赖与内存状态的数组。默认创建的数组类型(dtype)都是float64。
>>> zeros( (3,4) ) array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]) >>> ones( (2,3,4), dtype=int16 ) # dtype can also be specified array([[[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16) >>> empty( (2,3) ) array([[ 3.73603959e-262, 6.02658058e-154, 6.55490914e-260], [ 5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])
为了创建一个数列,NumPy提供一个类似arange的函数返回数组而不是列表:
>>> arange( 10, 30, 5 ) array([10, 15, 20, 25]) >>> arange( 0, 2, 0.3 ) # it accepts float arguments array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
当
arange使用浮点数参数时,由于有限的浮点数精度,通常无法预测获得的元素个数。因此,最好使用函数
linspace去接收我们想要的元素个数来代替用range来指定步长。
其它函数array, zeros, zeros_like, ones, ones_like, empty, empty_like, arange, linspace, rand, randn, fromfunction, fromfile参考:
NumPy示例
#####split_img.py
import cv2
import numpy as np
img=cv2.imread('messi5.jpg')
b,g,r=cv2.split(img)
cv2.namedWindow('imageb')
cv2.imshow('imageb',b)
cv2.namedWindow('imageg')
cv2.imshow('imageg',g)
cv2.namedWindow('imager')
cv2.imshow('imager',r)
cv2.waitKey(0)
b=img[:,:,0]
g=img[:,:,1]
r=img[:,:,2]
cv2.namedWindow('imageb')
cv2.imshow('imageb',b)
cv2.namedWindow('imageg')
cv2.imshow('imageg',g)
cv2.namedWindow('imager')
cv2.imshow('imager',r)
cv2.waitKey(0)
cv2.namedWindow('image')
cv2.imshow('image',img)
print "======================="
cv2.waitKey(0)
img2=np.zeros(img.shape, dtype=np.uint8)
img2[:,:,0]=b
img2[:,:,1]=g
img2[:,:,2]=r
cv2.namedWindow('image2')
cv2.imshow('image2',img2)
cv2.waitKey(0)
相关文章推荐
- NumPy中的乘法运算符 * 指示按元素计算,矩阵乘法可以使用 dot 函数或创建矩阵对象实现
- Java Split()函数使用中一些要注意的问题
- 关于数组的一些经常使用函数
- System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。 其函数原型是: public static void arraycopy(Object src, int
- SQLServer中的存储过程和函数的创建使用以及一些常用的日期函数
- numpy使用教程之数组的创建与遍历
- Python使用numpy模块创建数组操作示例
- asp.net中使用SPLIT这个函数把一个字符串分成数组
- C#File类常用的文件操作方法(创建、移动、删除、复制等) File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和
- PHP5中的一些数组函数的使用
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- 使用Split将规则字符串转化为数组,以及JOIN的用法VB6
- 使用ASP在IIS创建WEB站点的函数
- 关于用c生成的dll在使用其他供应商的工具创建可执行模块时遇到的一些问题
- [转贴]部分C语言库函数。为了避免重复造车轮,请尽量使用标准库提供的函数
- ASP.NET 程序设计中常用到的一些通用函数 自己的封装 可以做成dll来使用。
- 如何使用SetWindowRgn函数创建异形窗口
- 一些系统包和函数的使用
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- SQL 使用函数一些简单的事例