数字图像处理之图像基础
数字图像处理之图像基础
1.二值图、灰度图、彩色图
二值图:只有两种取值,黑白
灰度:对8位灰度图,有256中取值,0为黑色、255为白色
彩色:真彩色:RGB通道各有8位
假彩色:8位表示256种颜色
通常用8位表示图像,是无符号的,负数或者大于255的数将会通过运算循环到0~255范围内
2.图像的矩阵表示
灰度图用二维矩阵表示,RGB彩色图用三维矩阵表示。
分辨率概念:下图为4x2的分辨率
- 下为灰度图的矩阵和图像
[ [ 0 50 100 200 ]
[ 255 200 150 20 ] ]
- 下为RGB的矩阵和图像
[[[255,127,255,255],
[127,255,0,255]],
[[127,0,0,255],
[127,255,127,0]],
[[127,255,127,0],
[255,127,127,255]]]
代码函数
python
1 | import numpy as np |
矩阵与图像
python
1 | A = np.random.randint(0, 256, (2,4), dtype=np.uint8) |
通道分离与合并
python
1 | img = cv.imread('pic/cubic500x500.jpg') |
彩色图转化为灰度图
灰度图转化公式
gray(x,y) = 0.299 r(x,y) + 0.587 g(x,y) + 0.114 b(x,y)
python
1 | gray1 = 1/3*b + 1/3*g + 1/3*r #直接加权相加 |
图像二值化
python
1 | thresh = 125 |
3.图像相加、相减
示例图片读入
python
1 | obj = cv.imread('pic/hedgehog500x500.jpg', 0) |
相加:混合图像、添加噪声
相减:消除背景,差影法(比较差异,运动跟踪)
python
1 | # 相加 |
4.图像相乘、相除
相乘:掩膜
相除:矫正设备,比较差异
python
1 | # 乘法 |
5.图像线性和非线性变换
线性变换
python
1 | b = 20 |
np.clip(a,a_min,a_max) 将a数组中小于a_min的变成a_min,大于a_max的a_max变成
img3 = cv.convertScaleAbs(img, alpha=2, beta=20)
cv.convertScaleAbs(原图像 , k , b ) 函数中还包含其他参数,使用时需要指定alpha和beta 取绝对值再从255截断
非线性变换
python
1 | img4 = 10 + np.log(img.astype(np.float32) + 1) / 0.1 #非线性变换运算,注意类型范围 |
λ变换
python
1 | img01 = img / 255 #把图片放到0~1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Eureka!
评论
Powered By Valine
v1.5.2
v1.5.2