机器视觉OpenCVSharp-像素点的操作(读/写)
像素点的写:(.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);