多维数组中的元素相乘
Multiply element in multidimensional array
->请帮忙实现一个功能
基本上我想操作一个图像
想象一下,图像可以按像素分解
-> 图像的每个像素(举个简单的例子)都是“一个数字”
int[,] originalImage = new int[,]
{
{ 1,2,3 },
{ 4,5,6 }
};
而且我需要将图像的大小加倍 x2(或 x3、x4 等)
当尺寸加倍时,像素“1”将被复制到右侧、下方和角落
int[,] expectedResult = new int[,]
{
{ 1,1,2,2,3,3 },
{ 1,1,2,2,3,3 },
{ 4,4,5,5,6,6 },
{ 4,4,5,5,6,6 }
};
该功能如何实现?
Multiply(int[,] originalImage, int multiply)
请注意,有大量的库可以在数学或图像处理中执行此操作。不过,纯属学术用途
给定
private static int[,] DoStuff(int[,] array,int size)
{
var sizeX = array.GetLength(0);
var sizeY = array.GetLength(1);
var newArray = new int[sizeX * size, sizeY * size];
for (var i = 0; i < newArray.GetLength(0); i++)
for (var j = 0; j < newArray.GetLength(1); j++)
newArray[i, j] = array[i / size, j / size];
return newArray;
}
用法
int[,] originalImage =
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};
var newArray = DoStuff(originalImage,3);
for (var i = 0; i < newArray.GetLength(0); i++)
{
for (var j = 0; j < newArray.GetLength(1); j++)
Console.Write(newArray[i, j] + " ");
Console.WriteLine();
}
输出
1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3
4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6
->请帮忙实现一个功能
基本上我想操作一个图像
想象一下,图像可以按像素分解 -> 图像的每个像素(举个简单的例子)都是“一个数字”
int[,] originalImage = new int[,]
{
{ 1,2,3 },
{ 4,5,6 }
};
而且我需要将图像的大小加倍 x2(或 x3、x4 等) 当尺寸加倍时,像素“1”将被复制到右侧、下方和角落
int[,] expectedResult = new int[,]
{
{ 1,1,2,2,3,3 },
{ 1,1,2,2,3,3 },
{ 4,4,5,5,6,6 },
{ 4,4,5,5,6,6 }
};
该功能如何实现?
Multiply(int[,] originalImage, int multiply)
请注意,有大量的库可以在数学或图像处理中执行此操作。不过,纯属学术用途
给定
private static int[,] DoStuff(int[,] array,int size)
{
var sizeX = array.GetLength(0);
var sizeY = array.GetLength(1);
var newArray = new int[sizeX * size, sizeY * size];
for (var i = 0; i < newArray.GetLength(0); i++)
for (var j = 0; j < newArray.GetLength(1); j++)
newArray[i, j] = array[i / size, j / size];
return newArray;
}
用法
int[,] originalImage =
{
{ 1, 2, 3 },
{ 4, 5, 6 }
};
var newArray = DoStuff(originalImage,3);
for (var i = 0; i < newArray.GetLength(0); i++)
{
for (var j = 0; j < newArray.GetLength(1); j++)
Console.Write(newArray[i, j] + " ");
Console.WriteLine();
}
输出
1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3
4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6
4 4 4 5 5 5 6 6 6