1. 转换灰度图像
1.1 读取图像
代码语言:javascript复制import cv2 as cv
# 读取图片
img = cv.imread('../Resources/Photos/park.jpg')
cv.imshow('Park', img)
1.2 使用OpenCV
代码语言:javascript复制# 灰度化
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('Gray', gray)
1.3 使用PIL和numpy
代码语言:javascript复制
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
#读取图片,灰度化,并转为数组
im = array(Image.open("Resources/Photos/park.jpg").convert('L'))
im2 = 255 - im # 对图像进行反相处理
im3 = (100.0/255) * im 100 # 将图像像素值变换到 100...200 区间
im4 = 255.0 * (im/255.0)**2 # 对图像像素值求平方后得到的图像(二次函数变换,使较暗的像素值变得更小)
#2x2显示结果 使用第一个显示原灰度图
#subplot(221)
title('gray')
gray()
imshow(im)
show()
2. 颜色空间转换
2.1 原图
代码语言:javascript复制import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('../Resources/Photos/park.jpg')
cv.imshow('Park', img)
2.2 BGR转换为HSV
代码语言:javascript复制# BGR to HSV
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
cv.imshow('HSV', hsv)
2.3 BGR转换为LAB
代码语言:javascript复制# BGR to L*a*b
lab = cv.cvtColor(img, cv.COLOR_BGR2LAB)
cv.imshow('LAB', lab)
2.4 BGR转换为RGB
代码语言:javascript复制# BGR to RGB
rgb = cv.cvtColor(img, cv.COLOR_BGR2RGB)
cv.imshow('RGB', rgb)
2.5 HSV转换为RGB
代码语言:javascript复制# HSV to BGR
lab_bgr = cv.cvtColor(lab, cv.COLOR_LAB2BGR)
cv.imshow('LAB --> BGR', lab_bgr)
3. 参考
python图像数组操作与灰度变换