欢迎光临散文网 会员登陆 & 注册

机器视觉OpenCVSharp-像素点的操作(读/写)

2023-03-17 22:28 作者:Halcon仙女驻凡大使  | 我要投稿

像素点的写:(.set

单通道灰度图:

Mat img11 = newMat(@"D:\Users\FengJianming\C#\OpenCVSharp\OpenCVSharp\hk.jpg",ImreadModes.Grayscale); //读取图像为灰度图

char black = Convert.ToChar(0);

  img11.Set(Convert.ToInt16(textBox4.Text),Convert.ToInt16(textBox5.Text),black);

CV2.ImShow("img11", img11);

 

三通道彩色图像:

Mat img10 = newMat(@"D:\Users\FengJianming\C#\OpenCVSharp\OpenCVSharp\hk.jpg",ImreadModes.AnyColor);

Vec3b black = newVec3b(0,0,0);     //3 个char,对应BGR

  img10.Set(Convert.ToInt16(textBox4.Text),Convert.ToInt16(textBox5.Text),black);  //指定行、列,并设置成指定颜色

CV2.ImShow("img10", img10);

像素点的读:(.get

单通道灰度图:

  Mat img12 = newMat(@"D:\Users\FengJianming\C#\OpenCVSharp\OpenCVSharp\hk.jpg",ImreadModes.Grayscale); //读取图像为灰度图

byte color = (byte)Math.Abs(img12.Get<byte>(200, 200) -100);//读取原来的通道值并减100

  img12.Set(200, 200, color);

CV2.ImShow("img12", img12);

 

三通道彩色图像:        

Mat img13 =newMat(@"D:\Users\FengJianming\C#\OpenCVSharp\OpenCVSharp\hk.jpg",ImreadModes.AnyColor); //读取图像为彩色图

Vec3b color = newVec3b();//新建vec3b的对象,

    color.Item0 = (byte)Math.Abs(img13.Get<Vec3b>(200, 200).Item0- 50);//读取原来的通道值并减50

   color.Item1 = (byte)Math.Abs(img13.Get<Vec3b>(200, 200).Item1- 50);//读取原来的通道值并减50

    color.Item2 = (byte)Math.Abs(img13.Get<Vec3b>(200, 200).Item2- 50);//读取原来的通道值并减50

img13.Set(200, 200,color);

CV2.ImShow("img13", img13);


机器视觉OpenCVSharp-像素点的操作(读/写)的评论 (共 条)

分享到微博请遵守国家法律