提问者:小点点

如何将矩阵存储在C#中的图片框中?


我有一个256x256的矩阵,矩阵的每个元素:MyMatrix[I,j]//代表一个像素我如何在C#中的图片框中存储我的矩阵?


共1个答案

匿名用户

最简单的方法是创建一个大小相等的位图,并对每个x,y值使用SetPixel。

您需要在矩阵中的值和图像中的颜色值之间进行某种转换。如果您的值在[0,255]中,则可以将值箝位。否则,最简单的方法就是在最小值和最大值之间使用线性插值:

var i = (byte)((matrixValue - matrixMinValue) * 255 / (matrixMinValue - matrixMinValue)) 
var color  = Color.FromArgb(i,i,i);
myBitmap.SetPixel(x, y, color)

将位图设置为PictureBox.image属性,您就可以开始工作了。

对于不经常设置的小图像,SetPixel应该足够了。如果您需要更高的性能,可以考虑使用指针来复制数据。