如何在java中实现C#代码
我按照指示表和视频从。我试着用JAVA实现它。但我试着运行它时出错了 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:1 这里的错误如何在java中实现C#代码,java,c#,Java,C#,我按照指示表和视频从。我试着用JAVA实现它。但我试着运行它时出错了 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:1 这里的错误 img_color_space.get(i, j)[i] = 0; 这是C语言的完整代码# cvtColor(帧,帧,CV_BGR2HSV); 高斯模糊(帧,帧,大小(7,7),1,1); //medianBlur(帧,帧,15); 对于(int r=0;r而言,主要问题似乎是原始C#代码的最后一个
img_color_space.get(i, j)[i] = 0;
这是C语言的完整代码#
cvtColor(帧,帧,CV_BGR2HSV);
高斯模糊(帧,帧,大小(7,7),1,1);
//medianBlur(帧,帧,15);
对于(int r=0;r而言,主要问题似乎是原始C#代码的最后一个内部循环语句如下:
frame(r,c)[i] = 0; //nested 'for' loop variables are r, c, & i
转换后的代码有:
img_color_space.get(i, j)[i] = 0; //nested 'for' loop variables are i, j, & k
您正在忽略内部“for”循环“k”变量
将语句更改为:
img_color_space.get(i, j)[k] = 0;
“我的代码有问题吗?”是的,很明显。根据错误消息,您使用的数组索引超出了范围。当时使用的索引是什么?该索引的有效范围是什么?您可以通过调试找到错误所指的索引?其中一个问题是您使用的是增量后运算符i++
,而不是增量前运算符<代码>++i
当然它有不同的行为that@3vts:实际上,当它是一个独立语句(例如“for”循环的最后一个语句)时,如果使用pre或post increment,则完全没有区别。
img_color_space.get(i, j)[i] = 0; //nested 'for' loop variables are i, j, & k
img_color_space.get(i, j)[k] = 0;