【发布时间】:2021-01-10 11:17:32
【问题描述】:
由于 Corona 情况将我的学习描述为自学,作为一个处理语言新手,我很难进入图像处理的主题,更具体地说是卷积。所以我希望你能帮助我。
不幸的是,我的讲师几乎永远无法联系到他,给我留下了以下转换代码。卷积背后的理论对我来说很清楚,但是我在与代码相关的理解上还有很多差距。有人可以留下一行注释,以便我可以更流畅地进入代码吗?
代码如下
color convolution (int x, int y, float[][] matrix, int matrix_size, PImage img){
float rtotal = 0.0;
float gtotal = 0.0;
float btotal = 0.0;
int offset = matrix_size / 2;
for (int i = 0; i < matrix_size; i++){
for (int j= 0; j < matrix_size; j++){
int xloc = x+i-offset;
int yloc = y+j-offset;
int loc = xloc + img.width*yloc;
rtotal += (red(img.pixels[loc]) * matrix[i][j]);
gtotal += (green(img.pixels[loc]) * matrix[i][j]);
btotal += (blue(img.pixels[loc]) * matrix[i][j]);
}
}
rtotal = constrain(rtotal, 0, 255);
gtotal = constrain(gtotal, 0, 255);
btotal = constrain(btotal, 0, 255);
return color(rtotal, gtotal, btotal);
}
【问题讨论】:
-
咳咳,说真的,你如何将卷积转换为代码?
标签: image-processing processing convolution