转灰度图像
import cv2
import numpy as np
普通读取图片
img = cv2.imread('image\h.jpg')
读取灰度图像
img = cv2.imread('image\h.jpg',cv2.IMREAD_GRAYSCALE)
展示图片
def show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
图片的类型:numpy.ndarray
print(type(img))
图片的形状
彩色图片(长,宽,3)
灰色图片 (长,宽)
print(image.shape)
每个像素点都是整数类型
把彩色图像转为灰度图像
img = cv2.cvtVolor(img,cv2.COLOR_BGR2GRAY)
写图像
cv2.imwrite('image\girl_gray.png',img)
彩色转灰度的公式
Gray = R * 0.299 + G * 0.587 + B * 0.114
cv2.imread()读取图片的格式是BGR
把彩色图片才分为BGR独立通道,各个都是二维的
bImg,gImg,rImg = cv2.split(img)
Graying = np.zeros_like(bImg,dtype='uint8')
Graying = rImg*0.299 + gImg*0.587 + bImg*0.114
图像缩放
import cv2
import numpy as np
img = cv2.imread('image\girl.webp')
target_size = (400,200)
img_scale = cv2.resize(img,target_size)
在使用cv2.imread()读取RGB图像时,得到的array的shape是(长,宽)
使用cv2.resize(),第二个参数是输出图像的(宽,长)
img_scale = cv2.resize(img,(0,0))
图像通道拆分与合并
cv2.split()将3通道BGR彩色图像分离为B、G、R单通道图像。
import cv2
import numpy as np
img1 = cv2.imread('image/girl.webp',flags=1)
bImg,gImg,rImg = cv2.split(img1)
mergeImg = cv2.merge([bImg,gImg,rImg])
mergeImg = np.zeros_like(img1)
mergeImg[:,:,0] = bImg;
mergeImg[:,:,1] = gImg;
mergeImg[:,:,2] = rImg;
mergeImg = np.stack([bImg,gImg,rImg],axis=2)