从图像中提取RGB信息到数组中
本文关键字:数组 信息 提取 图像 RGB | 更新日期: 2023-09-27 18:03:07
我必须保存一个位图文件,然后访问每个像素的rgb,并将每个像素颜色(即红、绿、蓝)的十进制代码保存在一个单独的矩阵(数组)中。
为隐藏文本文件在bmp图像我需要保存每个rgb代码在单独的矩阵…我在寻找高效的方式,这是我的代码
这段代码将运行,但我不能在标签的文本中显示每个矩阵的结果。我怎样才能看到每个矩阵的输出呢?
Bitmap bmp1 = new Bitmap(@"D:a.jpg");
pictureBox1.Image = bmp1;
Color col = new Color();
int w = Int32.Parse(bmp1.Width.ToString());
int h = Int32.Parse(bmp1.Height.ToString());
int[,] redstr = new int[w,h];
int[,] greenstr = new int[w, h];
int[,] bluestr = new int[w, h];
int red = 0, green = 0, blue = 0;
for (int i = 0; i < w; i++)
{
for (int j = 0; j < h; j++)
{
col = bmp1.GetPixel(i, j);
red = col.R;
green = col.G;
blue = col.B;
redstr[i, j] = red;
greenstr[i, j] = green;
bluestr[i, j] = blue;
}
}
从下面的页面…https://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel.aspx
你可以使用像这样的东西来访问图像的每个像素…
private void GetPixel_Example(PaintEventArgs e)
{
// Create a Bitmap object from an image file.
Bitmap myBitmap = new Bitmap("YOURFILENAME.jpg");
// Get the color of a pixel within myBitmap.
Color pixelColor = myBitmap.GetPixel(50, 50);
}
然后你可以检查你的RGB组件的pixelcolor。
显然,您将需要创建一个2D数组(矩阵)与您的图像相同的尺寸。如果你需要存储单独的RGB组件,那么你将需要一个3D数组。