我想知道如何计算和显示拉普拉斯过滤图像,如下拉普拉斯滤波器示例..
-1 6 -1
6 -20 6
-1 6 -1
请帮我解决这个问题。谢谢。我感谢任何帮助。
答案 0 :(得分:0)
你问过Java,但如果你的意思更基本,我会尝试更广泛地回答。
给定滤波器系数(你有一个拉普拉斯滤波器的近似值),将它应用于图像的方法是Convolution(假设滤波器是LSI - 线性空间不变)。
卷积可以在频域中直接计算(循环)(使用Convolution Theorem)。
有几件事需要考虑(真实世界问题):
祝你好运。
答案 1 :(得分:0)
假设您能够逐像素扫描图像。
Original_Image(size) = Result_Image (size)
for( int i=1; i<Result_Image.rows-1;i++) // ignore first and last rows to avoid going out of range
{
for( int i=1;i<Result_Image.cols-1;i++)
{
Result_Image(i,j)= -20*Result_Image(i,j)+6*(Result_Image(i-1,j)+Result_Image(i+1,j)+Result_Image(i,j-1)+Result_Image(i,j+1))-1*(Result_Image(i-1,j-1)+Result_Image(i+1,j+1)+Result_Image(i+1,j-1)+Result_Image(i-1,j+1));
}
}
如果Java本身不支持逐像素扫描图像,则可以通过使用OpenCv for Java或类似的Java图像处理库来实现此目的。
注意=此算法可能无效,库具有一些用于过滤图像的有用功能