java - 给定角度和大小的运动模糊卷积矩阵

标签 java image-processing matrix convolution motion-blur

我有一个 Java 代码,它采用一个卷积矩阵(只是一个 2D double[][] )并将其应用于图像。我正在尝试找出如何创建一个矩阵,在给定角度(以度为单位)和模糊大小的情况下给出运动模糊。

幅度 = 1 的模糊的示例矩阵(中间像素在每个方向上被一个像素模糊),45 度运动模糊为:

0      0    1/3
0     1/3    0
1/3    0     0

幅度决定了矩阵的大小(大小 = 2*幅度 + 1),单行单元格在运动方向上不为零。

我遇到的麻烦是计算出在给定角度的矩阵中哪些单元格具有非零值所需的数学/代码。

伪(或实际)代码将非常有帮助!

最佳答案

对于运动模糊,非零元素显示全部位于一条线上。这就是你的例子有效的原因。 [1/n 1/n (ntimes)... 1/n] 会在水平方向上模糊,而转置会在垂直方向上模糊。对于任意角度,只需填写最接近所需角度的直线的非零元素即可。

编辑。

例如,您可能会尝试最小化像素索引的某些函数,以确定该像素是否应为非零。 |(i - 3*j)| <小数,会沿着斜率 3 的线找到像素。

关于java - 给定角度和大小的运动模糊卷积矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15579729/

相关文章:

Java try-finally 构造

java - 小程序:连接到其他主机

php - 使用循环 PHP、对角线检查增加 IF 语句中的条件

Matlab:将数据数组切割成较小的数组

java - NoClassDefFoundError 和 ClassNotFoundException 的原因和区别是什么?

Java JVM 根据操作系统保持内存分配

image-processing - 二进制图像上的快速像素计数 - ARM neon 内在函数 - iOS Dev

python - 如何在Python中使用second作为透明二进制掩码合并两个图像?

python - 通过相同大小的周围矩形提取图像中的标记区域

r - 将一个矩阵与一组标量相乘