OpenCV图像的基本操做 :使用包cv2,numpy数组
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)