很久没写点稍有深度的内容了,今天就来简单写写图像处理算法中的基本代数加乘概念吧,数字图像可以等效视为矩阵,在空间域的大多数操作都是按矩阵理论来执行的,无论是多张照片,还是单张照片,都可以用矩阵加乘来实现简单但有效的图像处理,按加减乘除来一个个看吧。
注:为了让话题不那么复杂,所以简略了一些前提解读,有疑问的可在评论区提出。
首先是图像相加,最有意义的应用就是针对带噪图像的多帧叠加平均降噪,令g(x,y)为理想无噪声图像f(x,y)被噪声n(x,y)污染后的图像,也即:
对于读取噪声来说,每一对坐标的噪声是不相关的(对于固定模式噪声等,可以用相关双采样等方式来解决,而与设计相关的暗电流、非均匀性响应等就需要通过改进工艺来解决了),这时候图像g ̅ (x,y)是K张不同噪声图像进行平均而形成:
且其期望值为f(x,y),g ̅与n在所有坐标上的方差满足:
那么,在均值图像上,任意一点的均方差就是:
可以看到随着K增大,每个像素坐标的变化将不断减小,所以带噪图片数量增加意味着它在求均值的过程中,不断接近理想的无噪声图像,当然,前提是像素间必须配准。不过在实际应用中K值并不是越大越好,它的变化曲线如下:
横坐标为K值(即拍摄张数),纵坐标为目标值,很明显,在取值较高时的变化会大幅放缓。所以对于天文应用来说,50张左右的堆栈就已经有非常好的效果,可以看看下图单张与32张的差距:
因为相加是连续积分(也就是长曝)的离散形式,所以对于天文摄影来说,一组带噪图像的均值与一张冷冻长曝的效果是类似的。对于日常拍摄来说想要通过叠加降噪,在机身稳定的情况下使用RAW连拍即可,张数视具体情况而定,快和稳是最关键的,然后再到后期软件里进行叠加均值操作即可,这方面教程非常多,就不赘述了。
然后是图像相减,它的主要意义是增强图像间的差别,在医学造影方面有着非常重要的作用,比如数字减影血管造影:先拍摄一张血管造影做模板f(x,y),再注射介质拍摄活体图像h(x,y),两者相减后就得到了血管结构的造影g(x,y):
再通过增强对比度的方式,就能获得非常清晰、不受其他组织影响的血管造影。单幅图像也能应用,只需把最低有效位元置零生成模板,再用原图减去模板,也能得到类似的效果:
对于机器视觉来说,图像相减也广泛应用于目标识别当中,而天文摄影中也需要拍摄暗场、暗平场便于后期处理时减法降噪,应用面还是很广泛的。
最后是乘除关系,它的主要用途是校正阴影,传感器给出的图像g(x,y)从光影角度来看可以是完美图像f(x,y)和阴影函数s(x,y)的乘积:
情况A:如果阴影函数已知,利用反函数g(x,y)/h(x,y)即可得到f(x,y)。
情况B:大多数时候阴影函数都是未知的,如果这时候图像系统可以访问,就能通过对具有恒定灰度的目标成像,模拟一个近似的阴影函数。如果图像系统不能访问,就只能直接从g(x,y)里估计阴影函数,准确度就要视具体情况而定了。
除此之外,机器视觉里的兴趣区域操作也可以通过图像相乘而来,将兴趣区域以设置为模板图像后,与给定的图像相乘,模板区域为1,其他为0,就能得到给定图像中模板区域的独立成像,兴趣区域可以不止一个,也可以是任意形状。
代数运算是图像处理的基础之一,简单了解这些基础知识会对拍摄和后期处理提供一些原理上的辅助,便于理解,融会贯通。以后有时间,大家有兴趣的话再做其他的基础讨论,这种文章就不写太长了,权当看个热闹吧各位。
领取专属 10元无门槛券
私享最新 技术干货