機(jī)器視覺OpenCVSharp-像素點(diǎn)的操作(讀/寫)
像素點(diǎn)的寫:(.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?個(gè)char,對應(yīng)BGR
??img10.Set(Convert.ToInt16(textBox4.Text),Convert.ToInt16(textBox5.Text),black);??//指定行、列,并設(shè)置成指定顏色
CV2.ImShow("img10", img10);
像素點(diǎn)的讀:(.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);