我正在研究基本的图像处理程序,目前有3个类:顶点,图形和操作。在类之间传递创建的数组[Java]
public class Vertex{
//Vertex functions, including tracking neighbours
}
public class Graph{
Vertex[][] aVertices;
public Graph(Color[][] image){
int xTop = 0;
for (int i = 0; i < image.length; i++){
if (i > xTop){
xTop = i;
}
}
int yTop = image.length;
Vertex[][] aVertices = new Vertex[xTop][yTop];
for(int i = 0; i < xTop; i++){
for(int j = 0; j < yTop; j++){
Vertex newVertex = new Vertex(i, j, image[i][j]);
aVertices[i][j] = newVertex;
}
}
for(int i = 0; i < xTop; i++){
for(int j = 0; j < yTop; j++){
if(aVertices[i][j] == aVertices[i-1][j]){
aVertices[i][j].neighbourize(aVertices[i-1][j]);
}
if(aVertices[i][j] == aVertices[i+1][j]){
aVertices[i][j].neighbourize(aVertices[i+1][j]);
}
if(aVertices[i][j] == aVertices[i][j-1]){
aVertices[i][j].neighbourize(aVertices[i][j-1]);
}
if(aVertices[i][j] == aVertices[i][j+1]){
aVertices[i][j].neighbourize(aVertices[i][j+1]);
}
}
}
}
}
public class Manipulations{
//Image manipulations that access aVertices
}
正如可以看到,在创建时的曲线图的,2D阵列创建保存顶点对象,然后将其分配适当邻居共享颜色状态。我现在想要在操纵中使用这个完整的aVertices并对其进行处理,但我不确定如何在合适的范围内移动它。任何人都可以指出我正确的方向吗?
请注意,您有一个名为'aVertices'两个变量。我建议你了解两者之间的差异,以及它们如何为你造成问题。 (注意一个是**字段变量**,另一个是**局部变量**。这两个术语可以帮助您找到更多信息。) –
如何创建每个类的对象? –