OpenCV图像的基本操作 :使用包cv2,numpy
代码语言:javascript复制import cv2
import numpy as np
img = cv2.imread('1.jpg')
cv2.imshow('image',img)
k = cv2.waitKey(0)
"把一个RGB图片看成一个3维的数组"
img2 = img[20:300, 100:400]
cv2.imshow('img2',img2)
k = cv2.waitKey(0)
"快速矩阵运算是numpy的优点,批量像素修改不需要使用循环,使用矩阵运算"
px=img[100,100]
print(px)
blue = img[100,100,0]
print(blue)
img[100:200,100:200]=[255,255,255]
print(img[101,101])
cv2.imshow('image',img)
k = cv2.waitKey(0)
img = cv2.imread('1.jpg')
" img.shape可以获得图像的形状,返回值是一个包含行数,列数,通道数的元组"
" 灰度图,返回值仅有行数和列数"
print(img.shape)
"img.size可以返回图像的像素数目"
print(img.size)
"图像的特定区域 拷贝操作"
logo = img[30:130, 330:430]
img[100:200,100:200] = logo
cv2.imshow('image',img)
k = cv2.waitKey(0)
"拆分及合并图像通道 对RGB三个通道分别操作"
"cv2.split()是比较耗时的操作,能用numpy就尽量使用"
r,g,b=cv2.split(img)#拆分
#img=cv2.merge(r,g,b)#合并
cv2.imshow('b',b)
k = cv2.waitKey(0)
img[:,:,2]=0
cv2.imshow('img',img)
k = cv2.waitKey(0)