【Emgu】一起学EmguCV(二)Image和Matrix的使用
来源:互联网 发布:梦里花落知多少李茉莉 编辑:程序博客网 时间:2024/06/16 12:01
http://www.cnblogs.com/bomo/archive/2013/03/28/2986573.html
上一篇简单介绍了EmguCV库的简单配置,并演示了Hello World程序,本篇继续介绍关于Emgu的基本使用 1、关于Image类的使用 Image用两个参数定义:Color 和 Depth TColor类型 TDepth类型 Gray Byte Bgr (Blue Green Red) SByte Bgra (Blue Green Red Alpha) Single (float) Hsv (Hue Saturation Value) Double Hls (Hue Lightness Saturation) UInt16 Lab (CIE L*a*b*) Int16 Luv (CIE L*u*v*) Int32 (int) Xyz (CIE XYZ.Rec 709 with D65 white point) Ycc (YCrCb JPEG) 例如:创建一个8位的灰度图像 //创建一张灰度图 Image img1 = new Image(480, 320); //创建一张蓝色的图片 Image img2 = new Image(480, 320, new Bgr(255, 0, 0)); //从文件创建Image Image img3 = new Image("MyImage.jpg"); //从Bitmap创建Image Bitmap bmp = new Bitmap("MyImage.jpg"); Image img4 = new Image(bmp); .Net会自动完成垃圾回收,对于比较大的图片,我们可以使用using关键字在不需要的时候自动对其进行回收 using (Image image = new Image(1000, 800)) { //对image操作 } 获取和设置像素颜色 有两种方式对图片的像素进行直接操作 Image img = new Image(480, 320, new Bgr(0, 255, 0)); //直接通过索引访问,速度较慢,返回TColor类型 Bgr color = img[100, 100]; img[100, 100] = color; //通过Data索引访问,速度快 //最后一个参数为通道数,例如Bgr图片的 0:蓝色,1:绿色,2:红色,Gray的0:灰度,返回TDepth类型 Byte blue = img.Data[100, 100, 0]; Byte green = img.Data[100, 100, 1]; Byte red = img.Data[100, 100, 2]; Image还对操作运算符进行了重载( + - * / ) Image img1 = new Image(480, 320, new Bgr(255, 0, 0)); Image img2 = new Image(480, 320, new Bgr(0, 255, 0)); //img3 == new Image(480, 320, new Bgr(255, 255, 0)); Image img3 = img1 + img2; Image有一个Not函数,可以让图片反色 Image还提供了转换器,可以让我们更方便的编写转换逻辑 Image还有一个 ToBitmap() 函数可以转换为Bitmap Image img1 = new Image(@"test.jpg"); Image img2 = img1.Not(); //下面转换效果与Not()函数相同 Image img3 = img1.Convert(delegate(Byte b) { return (Byte)(255 - b); }); pictureBox1.Image = img3.ToBitmap(); 2、关于Matrix矩阵类的使用 Martix的使用与Image类似,这里就不阐述了 Matrix matrix = new Matrix(480, 320); float f = matrix[100, 100]; float df = matrix.Data[100, 100];
- 【Emgu】一起学EmguCV(二)Image和Matrix的使用
- 【Emgu】一起学EmguCV(二)Image和Matrix的使用
- 【Emgu】一起学EmguCV(二)Image和Matrix的使用
- 【Emgu】一起学EmguCV(一)配置与使用
- 【Emgu】一起学EmguCV(一)配置与使用
- EmguCV Image类中的函数(二)使用MorphologyEx进行更多的变换
- 使用EmguCV库时出现"Emgu.CV.CvInvoke的类型初始值设定项引发异常"
- 一起学python(二)
- [学习笔记]C#中使用EmguCv时出现的 “Emgu.CV.CvInvoke”的类型初始值设定项引发异常
- EmguCV之ImageBox和HistogramBox的使用
- 我和我的小伙伴们一起学Unity3D(二)
- 和我一起学Hadoop(二):Hadoop的源码构建
- Drawable、Bitmap、Canvas、Paint和 Matrix 的使用(二)
- EmguCV学习(二)
- 一起学Java_StringBuffer和Arrays类的使用
- EmguCV Image类中的函数(一)
- EmguCV Image类中的函数(一)
- 在WPF中使用Emgu加载Image<,>图像的两种方法
- C#下的openCV(Emgu CV)
- oracle中使用rollup子句
- Google后Hadoop时代的新“三驾马车”—Caffeine、Pregel、Dremel
- 安装成功的nginx如何添加未编译安装模块
- java php 时间戳区别
- 【Emgu】一起学EmguCV(二)Image和Matrix的使用
- 中国汽车品牌口碑榜之:--2013年第3季度福州商用车综合口碑排名
- 嵌入式基础:ARM下GCC交叉编译器的制作
- mac 使用
- linux之tmpfs
- 自定义标签,时间戳与日期时间转换 jsp页面
- [EmguCV|C#]使用EmguCV的DenseHistogram類別計算與紀錄圖像直方圖-直方圖(Histogram)系列(2)
- 内核调试相关变量说明
- 汇编中.word的具体用途是什么?