Emgu.CV(二)

小实例

Emgu.CV(二)

   class Program
{
static void Main(string[] args)
{
#region Emgu.Cv
string imgPath = @"D:\timg.jpg";
//从文件中读取图像
var image = CvInvoke.Imread(imgPath, LoadImageType.Color);
//创建一个显示窗口
CvInvoke.NamedWindow("AJpg", NamedWindowType.Normal);
//显示图片
CvInvoke.Imshow("AJpg", image);
//等待按键输入
CvInvoke.WaitKey();
CvInvoke.DestroyWindow("AJpg");
image.Dispose();
#endregion
Console.Read();
}
}

基本方法

一.创建图像

Image<Bgr,Byte> image=new Image<Bgr,Byte>(400,400,new Bgr(255,0,0));

二.读入图像

 Image<Bgr, Byte> image = new Image<Bgr, byte>(@"D:\youyi-003.jpg");

三.从.Net Bitmap对象创建图像

Image<Bgr, Byte> image = new Image<Bgr, Byte>(bmp); 

四.像素的获取

彩图时:

Bgr _Bgr = _Image[0, 0];//获取_Image图像[0, 0]处的bgr像素值;  

灰度图时:

Gray _Gray = _image[0, 0]];//获取_Gray图像[0, 0]处的gray像素值;

五、像素的赋值  

       //按位置指定或写入像素值

       //彩图
_Image[0, 0] = new Bgr(Color.Red);
//灰度图
_image[0, 0] = new Gray(200); //按数据属性指定或写入像素值 //彩图时
Color R = Color.Red;
_Image.Data[0,0,2] = R.R; //红
_Image.Data[0,0,1] = R.G; //绿
_Image.Data[0,0,0] = R.B; //蓝
//灰度图时
_image[0, 0] = new Gray(200);

六、像素的转换

       // BGR转化成int(把value.Red替换成数字)
//Color _colour = Color.FromArgb((int)value.Red, (int)value.Blue, (int)value.Green);
Color _colour = Color.FromArgb(100, 200, 250);
//Gray 转化成 int
int _intensity = (int)_Gray.Intensity;
//直接用数据属性转换
//Colour
Color _colour1 = Color.FromArgb(_Image.Data[0, 0, 0],
_Image.Data[0, 0, 1], _Image.Data[0, 0, 2]);
//Gray Image
int _intensity1 = _image.Data[0, 0, 0];

七、图像显示  

     //使用ImageBox;
        Image<Bgr, Byte> _Image = new Image<Bgr, byte>(Openfile.FileName);
imageBox1.Image = _image;
        //转换为位图使用windows form中的PictureBox控件。
     Image<Bgr, Byte> _Image = new Image<Bgr, byte>(Openfile.FileName);
pictureBox1.Image = _Image.ToBitmap();

小实例  

 图片反转 

1.WinForm中引入emgu.CV.UI.dll 引入工具栏中

Emgu.CV(二)

2.编写代码

Emgu.CV(二)Emgu.CV(二)

 private void Form1_Load(object sender, EventArgs e)
{
//从文件中加载图片
Image<Bgr, Byte> image = new Image<Bgr, byte>(@"D:\timg.jpg");
imageBox1.Image = image;
} private void btn_Flip_Click(object sender, EventArgs e)
{
if (imageBox1.Image!=null)
{
var image = (Image<Bgr, Byte>)imageBox1.Image;
//图片反转
image._Flip(FlipType.Horizontal);
imageBox1.Image = image;
}
}

 

上一篇:mybatis 与 缓存


下一篇:李氏滑动事件冲突解决方案 之 处理子ViewGroup的超棒方案