Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二维卷积-如何在Java中实现?_Java_Arrays_Image Processing_Convolution - Fatal编程技术网

二维卷积-如何在Java中实现?

二维卷积-如何在Java中实现?,java,arrays,image-processing,convolution,Java,Arrays,Image Processing,Convolution,我已经把头撞在墙上好一阵子了。 我习惯于使用Matlab的conv2函数,它自己进行卷积运算 然而,我无法在Java中正确地实现它。我会提供一个代码片段,但它都搞砸了。我会尽量把它弄清楚并发布出来(实际上现在是凌晨4:30,我还在为此挣扎着……) 有谁能发布一个在Java中对两个大小相同的二维数组进行二维卷积的工作代码方法吗 谢谢你 一点谷歌搜索不会有什么坏处。也许对你有帮助。特别是, public static double[][] convolution2D(double[][] input

我已经把头撞在墙上好一阵子了。 我习惯于使用Matlab的
conv2
函数,它自己进行卷积运算

然而,我无法在Java中正确地实现它。我会提供一个代码片段,但它都搞砸了。我会尽量把它弄清楚并发布出来(实际上现在是凌晨4:30,我还在为此挣扎着……)

有谁能发布一个在Java中对两个大小相同的二维数组进行二维卷积的工作代码方法吗


谢谢你

一点谷歌搜索不会有什么坏处。也许对你有帮助。特别是,

public static double[][] convolution2D(double[][] input,
            int width, int height,
            double[][] kernel,
            int kernelWidth,
            int kernelHeight) {
        int smallWidth = width - kernelWidth + 1;
        int smallHeight = height - kernelHeight + 1;
        double[][] output = new double[smallWidth][smallHeight];
        for (int i = 0; i < smallWidth; ++i) {
            for (int j = 0; j < smallHeight; ++j) {
                output[i][j] = 0;
            }
        }
        for (int i = 0; i < smallWidth; ++i) {
            for (int j = 0; j < smallHeight; ++j) {
                output[i][j] = singlePixelConvolution(input, i, j, kernel,
                        kernelWidth, kernelHeight);
            }
        }
        return output;
    }
公共静态双[][]卷积2D(双[][]输入,
整数宽度,整数高度,
双[][]内核,
int内核宽度,
int内核高度){
int smallWidth=width-kernelWidth+1;
int smallHeight=height-kernelHeight+1;
双精度[]输出=新的双精度[smallWidth][smallHeight];
对于(int i=0;i
Re,
“任何人都可以发布一个在Java中对两个相同大小的二维数组进行二维卷积的工作代码方法吗?”
:正如目前所写的,这不是一个真实的问题,而是一个不适合本网站的代码乞求。请在你的问题结束之前,通过显示你的代码并提出一个具体的可回答问题来改变这一点。说真的,一个粗略的谷歌搜索产生了确切的功能。我找到了,但找不到任何值得使用的东西。我将尝试这一部分。谢谢