Opencv小白教程——创建图像

以下均为github上opencv的个人学习笔记,原路径如下:

https://github.com/JimmyHHua/opencv_tutorials

源码示例:

import cv2 as cv
import numpy as np

src = cv.imread("./test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

# 克隆图像
m1 = np.copy(src)

# 赋值
m2 = src
src[100:200,200:300,:] = 255  //src图像上X轴100到200区间,Y轴200到300区间的图像,所有通道颜色为白色,255代表白色
cv.imshow("m2",m2)

m3 = np.zeros(src.shape, src.dtype)  //src.shape表示整个图像区域,src.dtype表示src图像的数值类型,np.zeros代表0矩阵,整个图像为黑色
cv.imshow("m3", m3)

m4 = np.zeros([512,512], np.uint8) //[512,512]代表X轴0到512,Y轴0到512的图像区间,uint8为图像数值类型
# m4[:,:] =127 try to give gray value 127
cv.imshow("m4", m4)

m5 = np.ones(shape=[512,512,3], dtype=np.uint8)
m5[:,:,0] = 255 /
cv.imshow("m5", m5)


cv.waitKey(0)
cv.destroyAllWindows()

 

用法:zeros(shape, dtype=float, order='C')

返回:返回来一个给定形状和类型的用0填充的数组;

参数:shape:形状

dtype:数据类型,可选参数,默认numpy.float64

dtype类型:

t ,位域,如t4代表4位

b,布尔值,true or false

i,整数,如i8(64位)

u,无符号整数,u8(64位)

f,浮点数,f8(64位)

c,浮点负数,

o,对象,

s,a,字符串,s24

u,unicode,u24

order:可选参数,c代表与c语言类似,行优先;F代表列优先

例子:

np.zeros(5):
一行五列
array([0,0,0,0,0])
np.zeros(1,5):
一个一行五列
array([[0,0,0,0,0]])
np.zeros(2,5)
两个一行五列
array([
[0,0,0,0,0]
[0,0,0,0,0]])
np.zeros((2,3,3))
两个三行三列
array([ [[0,0,0]
[0,0,0]
[0,0,0]]
[[0,0,0]
[0,0,0]
[0,0,0]] ])

以上摘自:https://blog.****.net/qq_38739667/article/details/100511508

ones函数可以创建任意维度和元素个数的数组,其元素值均为1;另外还有一个empty函数,只是它所常见的数组内所有元素均为空,没有实际意义,所以它也是创建数组最快的方法。zeros、ones、empty的使用方法差不多。

以下为输出图片:
1.cv.imshow("m2",m2)

Opencv小白教程——创建图像

2.cv.imshow("m3", m3):

Opencv小白教程——创建图像

3.cv.imshow("m3", m3):

Opencv小白教程——创建图像

cv.imshow("m5", m5);

Opencv小白教程——创建图像