OpenCvSharp实现实现Mat对象简单的像素操作对象简单的像素操作
1:: 输出一个输出一个Mat对象的像素对象的像素
自定义一个Mat 对象,然后输出像素值(像素值基本都在 0 – 255 之间 ,图像为三通道)
代码代码
public static void F1()
{
Scalar s = new Scalar(0, 0, 255); //定义一个三通道颜色(红色)
Mat m = new Mat(100, 100, MatType.CV_8UC3, s); //矩阵数据类型(深度和通道数) MatType
/*
* 小图像的每一个像素值我们都是知道的,可以输出查看,验证算法正确性,然后在ran大图
*/
//打印 100 * 100 Mat对象像素值
for (int i = 0; i < m.Height; i++)
{
for (int j = 0; j < m.Width; j++)
{
Vec3b color = m.Get<Vec3b>(i, j); //new Vec3b(); 颜色通道类型 (字节的三元组),直接视同Get泛型方法返回指定类型
//单独获取指定通道像素
//color.Item0= m.Get<Vec3b>(i, j).Item0; //R
//color.Item1 = m.Get<Vec3b>(i, j).Item1; //G
//color.Item2 = m.Get<Vec3b>(i, j).Item2; //B
Console.Write(color.Item0 + " " + color.Item1 + " " + color.Item2);
Console.WriteLine(" "); //输出一个换行
}
}
using (new Window("M", WindowMode.AutoSize, m))
{
Cv2.WaitKey(0);
}
}
100*100 个像素大小的图像不是很大,颜色在代码值指定了(0,0,255)三通道的颜色值,打印出来都只是(0,0,255)。
下面读取一张彩色图片试一下:
public static void F1(string path)
评论10