date: 2024-09-06
title: "Signal and Image Processing"
status: DONE
author:
- AllenYGY
tags:
- NOTE
- ComputerVision
publish: True
Signal and Image Processing
from matplotlib import pyplot as p
import numpy.random as r
I = r.rand(256,256)*0.5;
p.imshow(I ,cmap='gray', vmin=0.0,vmax=1.0);
p.show();
rand(256,256)
生成一个 256x256 的随机矩阵, 值在 0-1 之间cmap = 'gray'
表示使用灰度图显示 vmin
和 vmax
分别表示最小值和最大值 matplotlib.pyplot.imshow()
函数用于显示图像, 一般可以自动数值normalize到 0-1 之间vmin
和 vmax
可以指定normalize的范围8 bit image: 256 gray levels
等间隔采样
Four views of filtering
系数
用于边缘检测
Check horizontal edge 横边
相当于计算两侧的差值,差值越大,当前位置是边缘
h=scipy.signal.correlated2d(f,I)
h=scipy.signal.convolve2d(f,I)
线性滤波器的线性性意味着,对于输入图像 I 以及两个滤波器 f_1 和 f_2 ,对图像应用滤波器的结果等于先将滤波器相加,再应用一次滤波,或者分别应用每个滤波器,再将结果相加。
换句话说,滤波操作对滤波器的加法是可交换的,可以直接作用于滤波器的线性组合。
平移不变性指的是滤波器的输出与像素位置无关,意思是无论图像中的像素在什么位置,滤波器对强度的操作结果都是相同的。也就是说,滤波器的应用不会因为图像的某个区域平移而改变输出。
在公式中,如果我们先将滤波器 f 平移,再对图像 I 进行滤波,这与先对图像 I 进行滤波,然后再平移滤波结果是等价的。
Any linear, shift-invariant operator can be represented as a convolution.
f = D[ 57:117, 107:167 ]
f2 = f – np.mean(f)
D2 = D – np.mean(D)
I2 = correlate2d( D2, f2, 'same' )
Now zero centered.
Score is higher only when dark parts
match and when light parts match.
通过将图像和子区域的均值归零,相关得分在模板的暗区和亮区与图像相应区域匹配时才会较高。这避免了只匹配亮度(而不考虑结构)的高得分情况。
选择窗口内的中位数/平均数
中值滤波器:
均值滤波器: