所谓的核,其实就是一个矩阵。而需要处理的图片其实也是一个大的矩阵。形象点说,核就像一个可以滑动的小四方形,叠加于处理的图片矩阵之上——有点像用单词书(需要处理的图像)被单词时附带的红色遮挡塑料片(核)。
比如一个要处理的、尺寸为30x30矩阵的图片,而核是一个3x3的矩阵。那么,图像所有的点都用这个核处理一遍。处理方法(也就是卷积运算)就是,要计算的图像中的点,与核中设置的中心相吻合后,在所需要计算的图像矩阵中,与整个核大小相同、位置相对应的快(3x3)中的数据,按照一定的算法,与核中的数据进行运算,运算结果存为目标图像与处理图像点相同的对应位置(这里注意,这个核与对应的图像中的块进行计算后,结果只是一个值,并不是一个矩阵,这个值存于开始与核中设置的中心相吻合的处理图像的目标图像的相应位置)。
这里就产生了一个边缘问题(卷积边界问题),因为如果要处理图像的点恰巧落在图像边缘,那么和核对应起来的时候,核中一部分数据则恰巧落在了处理图像的外围,这样就失去了与之相对应计算的数据。所以在对图像进行处理之前,可以选择将图像外围先放大一点点,放大方法可以选择边缘外围用固定值填充,或者是把图像本体边缘外围放大,之后再进行图像与核的卷积运算。当然了,所感兴趣的计算结果,可根据自己的需要进行剪切保存,或一开始就设置好感兴趣区域。