知识点:时间算法问题,涉及线性代数,简单记录一下。
已知:图像一维灰度数组float[] btTemp,原始图像宽度width,原始图像高度height。
求:将图像顺时针旋转90度
解:
int height = “你的原始图像高度”;
int width = “你的原始图像宽度”;
var newArray = new float[btTemp.Length];
for (int i = height - 1; i >= 0; i--)
{
//模拟划分为二维数组
//起始边界
int start = i * width;
for (int j = 0; j < width; j++)
{
newArray[j * height + height - i - 1] = btTemp[j + start];
}
}
此处newArray为所求结果,将newArray再转图像即可。
数组转图像:
var imageByte = newArray.ToArray();
var ms = new MemoryStream();
var image= Image.FromStream(ms);