9.图像操作的基石Numpy

本文介绍了Numpy库的基本操作,包括使用array、zeros、full、identity和eye创建矩阵,以及如何进行矩阵的检索与赋值。通过示例展示了如何创建全0、全1和指定值的矩阵,以及获取和修改图像中的像素值。同时,讲解了如何获取图像的子数组,实现对图像特定区域的操作。
摘要由CSDN通过智能技术生成

目录

Numpy基本操作

1.创建矩阵

Array

zeros

full

identity

2.检索与赋值[y,x]

3.获取子数组[:,:]

Opencv中用到的矩阵都要转换成Numpy数组

Numpy是一个经高度优化的Python数值库

Numpy基本操作

图形的操作就是对矩阵的操作

1.创建矩阵

创建数组array()

创建全0数组zeros()/ones,ones为创建全为1的数组

创建全值数组full()

创建单元数组identity/eye(),单位矩阵,eye()创建非方阵型的单位矩阵

Array

import numpy as np

a=np.array([1 ,2 ,3])  #创建1维数组
b=np.array([[1,2,3],[4,5,6]])  #创建2维数组,中间用,分割

print(a)
print(b)

zeros

c=np.zeros((480,640,3),np.uint8)

共两个参数

(480,640,3)(行的个数,列的个数,通道数/层数)

np.uint8矩阵中的数据类型

#定义zeros矩阵
c=np.zeros((5,5,3),np.uint8)
print(c)

#定义ones矩阵
d=np.ones((5,5,3),np.uint8)
print(d)

full

c=np.full((480,640,3),255,np.uint8)

(480,640,3)(行的个数,列的个数,通道数/层数)

255表示每个元素的数值

#定义full矩阵
e=np.full((2,2,3),255,np.uint8)
print(e)

identity

c=np.identity(3)

斜对角为1,其他为0

#定义identity矩阵
f=np.identity(3)
print(f)

eye

c=np.eye(3,5,k=3)

可以为非正方形矩阵,K为从第一行的第几个元素开始

#定义eye矩阵
g=np.eye(3,5,k=2)
print(g)

2.检索与赋值[y,x]

注意下标不同,y在前,索引值从0开始

多通道表示[y,x,channel],对于图像而言

import numpy as np
import cv2
img =np.zeros((480,640,3),np.uint8)

#检索
print(img[100,100])
#赋值
count = 0
while count <200:
    img[count,100,0] = 255 #改变第一层为0,2层为1,3层为2   顺序为BGR
    #img[count,100,0] = [0,0,255]  #3层都赋值,1层为0,2层为0,3层为255
    count= count+1

cv2.imshow('img',img)

key = cv2.waitKey(0)
if key & 0xFF == ord('q'):
    cv2.destroyAllWindows

3.获取子数组[:,:]

Region of Image (ROI)  图像中的某一区域

使用格式

[y1:y2,x1:x2]     [:,:]

import numpy as np
import cv2
img = np.zeros((480,640,3),np.uint8)

roi = img[100:400,100:600]
#roi[:,:]=[0,0,255] #将上面的一块区域设为红色

roi[:]=[0,0,255] #与上面功能相同,是roi[:,:]的缩写

roi[10:50,10:60] = [0,255,0]  #画绿色的方块
#可以通过该方法画任意图形

cv2.imshow('img',roi)

key = cv2.waitKey(0)
if key & 0xFF == ord('q'):
    cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值