(1)将RGB图像转为HSV, LAB, GRAY, 顺变将不是224大小的图片resize一下
# -*- coding: utf-8 -*-
import os
import cv2
N = 0
imgPath = "TrainDataExpd/"
savePath = "TrainDataFinal/"
for root, dirs, files, in os.walk(imgPath):
for name in files:
N += 1
print N
folder = root.split('/')[-1]
ImgName, ext = os.path.splitext(name)
saveFolder = savePath + folder + '/'
if not os.path.exists(saveFolder):
os.mkdir(saveFolder)
imgFilePath = os.path.join(root,name)
Img = cv2.imread(imgFilePath)
size = Img.shape
width = size[0]
height = size[1]
if width != 224 or height != 224:
NewImg = cv2.resize(Img, (224,224))
cv2.imwrite(saveFolder + name, NewImg)
# RGB2Gray
GrayImg = cv2.cvtColor(NewImg,cv2.COLOR_BGR2GRAY)
cv2.imwrite(saveFolder + ImgName + 'G' + '.jpg', GrayImg)
# RGB2HSV
HSVImg = cv2.cvtColor(NewImg,cv2.COLOR_BGR2HSV)
cv2.imwrite(saveFolder + ImgName + 'H' + '.jpg',HSVImg)
# RGB2lab
LABImg = cv2.cvtColor(NewImg,cv2.COLOR_BGR2LAB)
cv2.imwrite(saveFolder + ImgName + 'L' + '.jpg', LABImg)
else:
cv2.imwrite(saveFolder + name, Img)
GrayImg = cv2.cvtColor(Img,cv2.COLOR_BGR2GRAY)
cv2.imwrite(saveFolder + ImgName + 'G' + '.jpg', GrayImg)
HSVImg = cv2.cvtColor(Img,cv2.COLOR_BGR2HSV)
cv2.imwrite(saveFolder + ImgName + 'H' + '.jpg',HSVImg)
LABImg = cv2.cvtColor(Img,cv2.COLOR_BGR2LAB)
cv2.imwrite(saveFolder + ImgName + 'L' + '.jpg', LABImg)
(2)另可以用PIL的Image:
# Img = Image.open(path)
# # convert to gray
# GrayImg = Img.convert('L')
# GrayImg.save("C:/Users/liesmars/Desktop/gray.jpg")
(3)颜色通道分离 合并:
img = cv2.imread(path)
# b = cv2.split(img)[0]
# g = cv2.split(img)[1]
# r = cv2.split(img)[2]
MergedImg1 = cv2.merge([b,g,r])