数字图像处理(一)仿射变换和灰度变换

本文介绍了数字图像处理的基础知识,包括使用opencv-python平台进行图像读取、显示和保存。讲解了图像的空间坐标变换,如尺度、旋转、平移、镜像和偏移变换,并详细阐述了灰度变换,如图像反转、对数、反对数、伽马和直方图均衡化等操作,以提升图像对比度。
摘要由CSDN通过智能技术生成

平台:opencv-python

读入图片:cv2.imread(path, flags)
flag=-1时,8位深度,原通道
flag=0,8位深度,1通道
flag=1, 8位深度 ,3通道
flag=2,原深度,1通道
flag=3, 原深度,3通道
flag=4,8位深度 ,3通道

保存图片:cv2.imwrite(path, data)

显示图片:cv2.imshow(window_name, data)

等待输入:cv2.waitkey(wait_time)
wait_time>=0,按任意键继续

销毁窗口:cv3.destoryAllWindows()

颜色空间转换:cv2.cvtColor(data, convert_type)
convert_type----cv2.COLOR_BGR2BGRA等各种颜色空间转换

基础概念

图像的形成

一般图像灰度值f(x,y)由照射分量i(x,y)和反射分量r(x,y)形成。
f(x,y) = i(x,y)*r(x,y),其中,0 < i(x,y) < +inf, 0 < r(x,y) < 1

灰度级

灰度级:由照射分量和反射分量可以知道,一般灰度级在 Lmin - Lmax 之间。
通常,灰度级取0-( Lmax - Lmin - 1),即[0, L-1],其中L就是对比度。

亮度、对比度、饱和度、色调(色相)

亮度:一般是指灰度值f(x,y),灰度值整体越大,图像越亮,反之,图像越暗
对比度:一般是指最大最小的灰度之差,最大最小的灰度级之差。
饱和度:基色的灰度值之间的变化。越接近0,图像就越失去色彩。取值在[0-1]之间。
色调(色相):指纯颜色,如红色,蓝色,绿色。

>>空间坐标变换<<

cv2.warpAffine(src, M, dsize, flags)
M:仿射矩阵(shape:(2, 3))
dsize:处理后图像的大小:(rows, cols)
flags:
INTER_NEAREST - 最近邻插值(一般不推荐)
INTER_LINEAR - 线性插值(默认, 推荐放大时使用)
INTER_AREA - 区域插值(推荐缩小时使用)
INTER_CUBIC - 三次样条插值(推荐放大时使用)
INTER_LANCZOS4 - Lanczos 插值

1. 尺度变换(放大或者缩小)

注意:在尺度变换的过程中,伴随着插值运算(新坐标的像素值,无法对齐到原坐标上)

# 方法1:cv.warpAffine(src, M, dsize, flags)
t = 1.8
kernel = np.array([[t, 0, 0], [0, t, 0]], dtype=np.float32)
img_interpolation = cv.warpAffine(img_org, kernel, dsize=(int(t * w), int(t * h)), flags=cv.INTER_LINEAR)
# 方法2:cv.resize(src, dzise, interpolation)
img_interpolation = cv.resize(img_org, dsize=(int(t * w), int(t * h)), interpolation=cv.INTER_LINEAR)

2. 旋转变换

注意:旋转后,在没有缩放的情况下,新旧坐标的像素值对应相等

# 方法1:cv.rotate()
img_rotation = cv.rotate(img_org
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值